RSpec2错误代码测试

时间:2013-07-20 11:22:19

标签: ruby-on-rails ruby testing rspec

我在测试错误代码时遇到问题。如果找不到记录,则会引发异常ActiveRecord :: RecordNotFound。问题是,我想检查404是否返回。如果我继续检查:

 response.status.should == 404

然后,这将使测试用例失败,因为抛出了RecordNotFound异常而没有捕获。如果我继续说

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

然后检查状态代码,然后它将再次失败,因为这会捕获异常并且响应代码为200.

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

2 个答案:

答案 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