我有一个 Rails 项目并使用 RSpec 作为测试框架。我需要的是在某些匹配器失败时订阅事件,例如我得到了这个:
true.should be_false
我想对每一次失败采取一些行动。这个功能是由 RSpec 提供的吗?
我有一个 Rails 项目并使用 RSpec 作为测试框架。我需要的是在某些匹配器失败时订阅事件,例如我得到了这个:
true.should be_false
我想对每一次失败采取一些行动。这个功能是由 RSpec 提供的吗?
您可以将此行为猴子修补到 RSpec::Core::Example 类中:
require 'spec_helper'
class RSpec::Core::Example
def failed?
!@exception.nil?
end
end
describe "my_tested_things" do
...
end
然后你可以确保它会在所有失败的匹配之后运行你想要的代码:
after(:each) do
run_my_code if example.failed?
end
检查钩子,不确定它是否会有所帮助,但它将示例传递到块中(在文档中)你可能能够得到结果......