簡體   English   中英

如何使用 chai 測試浮點相等性?

[英]How can I test floating-point equality using chai?

我們使用Chai 的 BDD API來編寫單元測試。

我們如何斷言浮點相等?

例如,如果我嘗試使用此斷言來檢查 66⅔% 的返回值:

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

我得到這個失敗:

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

我也在尋找這個,除了這個問題,我還發現了有關導致添加closeTo的功能請求的討論 有了它,您可以指定一個值和一個 +/- delta,因此基本上它可以讓您指定檢查結果的精度。

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

或者

// `closeTo` is an alias for the arguably better name `approximately`
percentage.should.be.approximately(6.666, 0.001);

或者

expect(percentage).to.be.closeTo(6.666, 0.001)

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM