我们正在使用Chai's 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
答案 0 :(得分:29)
我也在寻找这个问题,除了这个问题之外,我还发现this discussion关于导致添加closeTo
的功能请求。有了它,您可以指定一个值和+/- delta,所以基本上它允许您指定检查结果的精度。
percentage.should.be.closeTo(6.666, 0.001);
或
expect(percentage).to.be.closeTo(6.666, 0.001)
当然不完美,因为这将批准从6.665到6.667的任何数字。
答案 1 :(得分:6)
within
断言可用于检查浮点数是否接近其预期结果:
expect(percentage).to.be.within(66.666, 66.667);