如何测试某一行为是否会引发ActionController::ParameterMissing
例外?
例如:
it "raises an exception" do
post :create, {}
expect(response).to raise ActionController::ParameterMissing
end
上面的似乎不起作用,它将导致测试失败ActionController::ParameterMissing
例外。
使用expect块语法,使用raise_error https://www.relishapp.com/rspec/rspec-expectations/v/2-13/docs/built-in-matchers/raise-error-matcher匹配器:
it "raises an exception" do
expect{ post(:create, {}) }.to raise_error ActionController::ParameterMissing
end
您的代码不起作用的原因是post(:create, {})
引发异常。这发生在expect(response).to ...
代码得到执行。自从#post
消息不在begin...end
块中,引发的异常将传递给测试失败的 RSpec。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)