0

我有一个 Rails 项目并使用 RSpec 作为测试框架。我需要的是在某些匹配器失败时订阅事件,例如我得到了这个:

true.should be_false

我想对每一次失败采取一些行动。这个功能是由 RSpec 提供的吗?

4

2 回答 2

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
于 2012-05-11T14:22:24.820 回答
1

检查钩子,不确定它是否会有所帮助,但它将示例传递到块中(在文档中)你可能能够得到结果......

https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/hooks

于 2012-05-11T13:30:19.533 回答