我在测试错误代码时遇到问题。如果找不到记录,则会引发异常ActiveRecord :: RecordNotFound。问题是,我想检查404是否返回。如果我继续检查:
response.status.should == 404
然后,这将使测试用例失败,因为抛出了RecordNotFound异常而没有捕获。如果我继续说
expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound)
然后检查状态代码,然后它将再次失败,因为这会捕获异常并且响应代码为200.
在这种情况下,我该如何测试是否返回404?
答案 0 :(得分:0)
如果您不想查看其他示例中的例外情况,可以在config/environments/test.rb
中设置以下选项:
config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true
答案 1 :(得分:0)
我不确定我是否理解这些细节以确定这是否对您有所帮助,但请按照https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/bypass-rescue所述查看bypass_rescue
。