2013-09-30 32 views
0

我使用Rspec的是這樣的:添加細節Rspec的錯誤

expect(approx_equals(value, raw_ref[u].fetch(p.to_s).to_f, 30)).to eq(true) 

approx_equals返回boolean和30是錯誤的餘量接受

一%,我不得不做這種方式,因爲我我正在比較可以稍微改變的數字。

但是,當我的測試出現故障,我得到這樣一個錯誤:

testing element Foo 0.00000s 
expected: true 
    got: false 

(compared using ==) 

我想補充/改變一些DATAS到這些日誌。例如:

testing element Foo 0.00000s 
expected: 10 
margin of error : 30% 
    got: 23 

有沒有辦法來覆蓋Rspec的痕跡?

+1

是,創建自己的匹配 – apneadiving

+0

良好的解決方案,謝謝,但be_within會更快。 – Pol0nium

+0

是的,肯定:) – apneadiving

回答

2

這聽起來像內置be_within matcher可能適合你的需求:

it { should be_within(0.5).of(28) } 

失敗

expected 27.5 to be within 0.5 of 28 
0

您可以檢查像這樣

首先檢查它返回整數或不

expect(actual).to be_a_kind_of(Fixnum)  

然後檢查車況

expect(actual).to be > expected 
expect(actual).to be >= expected 
expect(actual).to be <= expected 
expect(actual).to be < expected 

而且在範圍

expect(1..30).to cover(expected) 

我也是F你想使用正則表達式

expect(actual).to match(/expression/) #in expression \d+ for digit..