Leo*_*Leo 21 ruby methods rspec
我正在尝试运行RSpec测试,我想检测该after方法中的测试是否失败.我现在有类似的东西:
after(:each) do
cc = ConnectController.new()
cc.update(<TEST-SERVER-CONTROLLER>, <TC-RESULT-ID>, result?)
end
Run Code Online (Sandbox Code Playgroud)
如您所见,该result?功能是我需要替换的,检测测试是否失败,以及获取有关失败的测试的信息.
gee*_*oid 21
除了Daniel的答案之外,在Rspec3中删除了示例方法(有关详细信息,请参阅此处).
你必须做这样的事情:
after(:each) do |example|
if example.exception
# ...
end
end
Run Code Online (Sandbox Code Playgroud)
Dan*_*ans 13
编辑:这个答案仅适用于RSpec 2.对于RSpec 3,请参阅geekazoid的答案.
每个块之后运行在暴露的类的上下文中example,您可以通过检查exception方法来检测故障example:
after(:each) do
if example.exception != nil
# Failure only code goes here
end
end
Run Code Online (Sandbox Code Playgroud)