Rails 3.2.9では、次のようなカスタムエラーページが定義されています。
# application.rb
config.exceptions_app = self.routes
# routes.rb
match '/404' => 'errors#not_found'
これは期待どおりに機能します。設定config.consider_all_requests_local = false
すると、訪問したときdevelopment.rb
にビューが表示されますnot_found
/foo
しかし、Rspec + Capybaraでこれをテストするにはどうすればよいですか?
私はこれを試しました:
# /spec/features/not_found_spec.rb
require 'spec_helper'
describe 'not found page' do
it 'should respond with 404 page' do
visit '/foo'
page.should have_content('not found')
end
end
この仕様を実行すると、次のようになります。
1) not found page should respond with 404 page
Failure/Error: visit '/foo'
ActionController::RoutingError:
No route matches [GET] "/foo"
どうすればこれをテストできますか?
編集:
言及するのを忘れた:私config.consider_all_requests_local = false
はtest.rb