have_http_status
マッチャー
have_http_status
マッチャーは、レスポンスが所望のステータスコードを返すことを指定するために使用されます。次のいずれかの形式で1つの引数を受け入れます。
- 数値コード
Rack::Utils::SYMBOL_TO_STATUS_CODE
で定義されたステータス名- 一般的なステータスタイプ (
:success
,:missing
,:redirect
,:error
)
このマッチャーは、どの response
オブジェクトでも動作します。コントローラースペック、リクエストスペック、およびフィーチャースペックで使用できます。
数値ステータスコードの確認
次の内容で "spec/controllers/application_controller_spec.rb" という名前のファイルがあるとします:
require "rails_helper"
RSpec.describe ApplicationController, type: :controller do
controller do
def index
render :json => {}, :status => 209
end
end
describe "GET #index" do
it "returns a 209 custom status code" do
get :index
expect(response).to have_http_status(209)
end
end
end
rspec spec
を実行すると、
すべての例がパスするはずです。
シンボリックステータス名の確認
次の内容で "spec/controllers/application_controller_spec.rb" という名前のファイルがあるとします:
require "rails_helper"
RSpec.describe ApplicationController, type: :controller do
controller do
def index
render :json => {}, :status => :see_other
end
end
describe "GET #index" do
it "returns a :see_other status code" do
get :index
expect(response).to have_http_status(:see_other)
end
end
end
rspec spec
を実行すると、
すべての例がパスするはずです。