4

エラー コードのテストに問題があります。レコードが見つからない場合、例外 ActiveRecord::RecordNotFound が発生します。問題は、404 が返されるかどうかを確認したいということです。先に進んでチェックすると:

 response.status.should == 404

これにより、RecordNotFound 例外がスローされ、キャッチされないため、テスト ケースが失敗します。私が先に進んで言うなら

expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound) 

ステータス コードを確認すると、例外がキャッチされ、応答コードが 200 であるため、再び失敗します。

このような場合に 404 が返されるかどうかをテストするにはどうすればよいですか?

4

2 に答える 2

0

他の例で例外をチェックしたくない場合は、次のオプションを で設定できますconfig/environments/test.rb

config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true
于 2013-07-20T11:40:52.873 に答える
0

これが役立つかどうかを知るのに十分なほど詳細を理解しているかどうかはわかりませんが、https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/bypass-rescuebypass_rescueで説明されているように確認してください.

于 2013-07-20T15:10:38.293 に答える