我有一个Rails项目并使用RSpec作为测试框架。我需要的是在某些匹配器失败时订阅该事件,例如我明白了:
true.should be_false
我希望在每次失败时都采取一些行动。这个功能是由RSpec提供的吗?
答案 0 :(得分:2)
您可以将此行为修补为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
答案 1 :(得分:1)
查看钩子,不确定它会有帮助,但是如果它将示例传递到块(在文档中),您可能会得到结果......