エラー コードのテストに問題があります。レコードが見つからない場合、例外 ActiveRecord::RecordNotFound が発生します。問題は、404 が返されるかどうかを確認したいということです。先に進んでチェックすると:
response.status.should == 404
これにより、RecordNotFound 例外がスローされ、キャッチされないため、テスト ケースが失敗します。私が先に進んで言うなら
expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound)
ステータス コードを確認すると、例外がキャッチされ、応答コードが 200 であるため、再び失敗します。
このような場合に 404 が返されるかどうかをテストするにはどうすればよいですか?