リクエストヘッダーの設定
リクエストの仕様ではなく、コントローラの仕様を使用してヘッダーを設定することをお勧めします。コントローラの仕様でヘッダーを設定する場合は、以下に示すように request.headers
を使用できます。
コントローラの仕様でヘッダーの値を設定する
以下の内容で "spec/controllers/application_controller_spec.rb" という名前のファイルを作成します。
require "rails_helper"
RSpec.describe ApplicationController, type: :controller do
controller do
def show
if request.headers["Authorization"] == "foo"
head :ok
else
head :forbidden
end
end
end
before do
routes.draw { get "show" => "anonymous#show" }
end
context "valid Authorization header" do
it "returns a 200" do
request.headers["Authorization"] = "foo"
get :show
expect(response).to have_http_status(:ok)
end
end
context "invalid Authorization header" do
it "returns a 403" do
request.headers["Authorization"] = "bar"
get :show
expect(response).to have_http_status(:forbidden)
end
end
end
rspec spec
を実行すると、例がパスするはずです。