我在测试错误代码时遇到问题。如果没有找到记录,它会引发异常ActiveRecord::RecordNotFound。问题是,我想检查是否返回了404。如果我继续检查:
response.status.should == 404然后,这将使测试用例失败,因为RecordNotFound异常被抛出而没有被捕获。如果我继续说
expect {<call controller action>}.to raise_error(ActiveRecord::RecordNotFound) 然后检查状态代码,然后它将再次失败,因为它捕获了异常,响应代码为200。
这种情况下如何测试是否返回404?
发布于 2013-07-20 19:40:53
如果您不想检查其他示例中的异常,可以在config/environments/test.rb中设置以下选项
config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true发布于 2013-07-20 23:10:38
我不确定我是否充分理解了其中的细节,因此不知道这是否会对您有所帮助,但请查看https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/bypass-rescue中描述的bypass_rescue。
https://stackoverflow.com/questions/17761710
复制相似问题