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