【问题标题】:RSpec2 error codes testingRSpec2 错误代码测试
【发布时间】: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 等)

标签: ruby-on-rails ruby testing rspec


【解决方案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 所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多