RSpec2 错误代码测试
Posted
技术标签:
【中文标题】RSpec2 错误代码测试【英文标题】:RSpec2 error codes testing 【发布时间】:2013-07-20 11:22:19 【问题描述】:我在测试错误代码时遇到了问题。如果未找到记录,则会引发异常 ActiveRecord::RecordNotFound。问题是,我想检查是否返回了 404。如果我继续检查:
response.status.should == 404
然后这将使测试用例失败,因为 RecordNotFound 异常被抛出并且未被捕获。如果我继续说
expect <call controller action>.to raise_error(ActiveRecord::RecordNotFound)
然后检查状态码,然后再次失败,因为它捕获了异常并且响应码是200。
在这种情况下我应该如何测试是否返回404?
【问题讨论】:
遇到同样的问题!我需要跳过/绕过至少一个异常以查看返回的内容(例如 404、400 等) 【参考方案1】:如果您不想检查其他示例中的异常,您可以在 config/environments/test.rb
中设置以下选项:
config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true
【讨论】:
我正在检查其他少数情况下的异常,即使基于每个测试用例抛出异常,是否有办法抑制失败?【参考方案2】:我不确定我是否足够了解细节以知道这是否会对您有所帮助,但请查看bypass_rescue
,如https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/bypass-rescue 所述。
【讨论】:
以上是关于RSpec2 错误代码测试的主要内容,如果未能解决你的问题,请参考以下文章
ruby 1.9 和 RSpec2 有啥好的突变测试工具吗?
汽车加油问题出现一些错误。它适用于大多数测试用例,但不适用于所有测试用例。你能告诉我为啥这段代码是错误的