Ruby on rails RSpec2错误代码测试

Ruby on rails RSpec2错误代码测试,ruby-on-rails,ruby,testing,rspec,Ruby On Rails,Ruby,Testing,Rspec,我对测试错误代码有问题。如果未找到记录,则会引发异常ActiveRecord::RecordNotFound。问题是,我想看看404是否被退回。如果我继续检查: response.status.should == 404 然后,这将使测试用例失败,因为RecordNotFound异常被抛出且未被捕获。如果我继续说 expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound) 期望{

我对测试错误代码有问题。如果未找到记录,则会引发异常ActiveRecord::RecordNotFound。问题是,我想看看404是否被退回。如果我继续检查:

 response.status.should == 404
然后,这将使测试用例失败,因为RecordNotFound异常被抛出且未被捕获。如果我继续说

expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound) 
期望{}.引发_错误(ActiveRecord::RecordNotFound)
然后检查状态代码,然后它将再次失败,因为它捕获异常,响应代码为200


我应该如何测试在这种情况下是否返回404?

如果不想检查其他示例中的异常,可以在
配置/environments/test.rb中设置以下选项:

config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true

我不确定我是否充分理解了细节,知道这是否会对您有所帮助,但请查看
旁路救援
,如中所述。

我正在检查少数其他情况下的异常,是否有一种方法可以抑制失败,即使在每个测试用例的基础上引发异常?具有完全相同的问题!我需要跳过/绕过至少一个异常以查看返回的内容(例如404、400等)