2013-07-20 75 views
4

我遇到了测试错误代码的问题。如果没有找到记录,则会引发异常ActiveRecord :: RecordNotFound。事情是,我想检查404是否返回。如果我继续,只需检查:RSpec2错误代码测试

response.status.should == 404 

然后这将使测试用例失败,因为RecordNotFound异常被引发并且未被捕获。如果我继续说

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

,然后检查状态代码,那么它将再次失败,因为这捕捉异常和响应代码为200

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

+0

有完全相同的问题!我需要跳过/绕过至少一个异常,以查看返回的内容(例如404,400等) – Max

回答

0

如果你不想检查其他例子例外,你可以设置你的config/environments/test.rb以下选项:

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

我在少数其他情况下检查异常,是否有抑制失败的方法,即使每次抛出异常测试用例的基础? – foFox