2015-09-24 43 views
13

我們使用Chai's BDD API編寫單元測試。如何使用chai測試浮點相等?

我們如何聲明浮點平等?

例如,如果我儘量讓這個斷言來檢查66⅔%返回值:

expect(percentage).to.equal(2/3 * 100.0); 

我得到這個故障:

AssertionError: expected 66.66666666666667 to equal 66.66666666666666 
Expected :66.66666666666666 
Actual :66.66666666666667 

回答

5

within斷言可以用來檢查浮點數是否接近其預期結果:

expect(percentage).to.be.within(66.666, 66.667); 
16

我在尋找g,除此之外,我還發現this discussion關於導致添加closeTo的功能請求。有了這個,你可以指定一個值和一個+/- delta,所以基本上它可以讓你指定檢查結果的精度。

percentage.should.be.closeTo(6.666, 0.001); 

這當然不完美,因爲這會批准從6.665到6.667的任何數字。