Rspec:当匹配器失败时

时间:2012-05-11 12:46:18

标签: ruby ruby-on-rails-3 rspec2

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

true.should be_false

我希望在每次失败时都采取一些行动。这个功能是由RSpec提供的吗?

2 个答案:

答案 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)

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

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