有没有办法在rspec中使用类似“ Verify”的匹配器?

时间:2019-02-11 07:28:03

标签: ruby selenium selenium-webdriver rspec matcher

到目前为止,我在测试框架中使用的是“期望”,当遇到失败条件时它将停止执行。我想要类似的事情,即使它满足失败条件也应该执行。我可以看到在rspec中有一个名为'Verify'的匹配器,我需要继承'Test :: Unit :: TestCase'类,但是我的问题是,我的spec文件中需要匹配器,该匹配器不是在红宝石课。

1 个答案:

答案 0 :(得分:1)

开箱即用RSpec没有办法做到这一点。 因为Rspec旨在测试小的隔离逻辑。

在失败时,Rspec匹配器会引发错误,因此您可以做的是将匹配器包装在救援块中。 为了满足您的需要,您可以编写一个这样的包装器:

def report_last(&block)
  begin
    yield
  rescue Exception => e
    puts "Failure: #{e}"
  end
end

在您的测试案例中:

describe Calculator do
  it “should add 2 numbers” do
    report_last do
      expect(described_class.new(2, 3).sum)to eq(5)
    end
  end
end