我如何使用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);
相关文章:
- 在http服务单元测试中使用request-js时,chai.request不是一个函数
- 如何在量角器测试中使用browser.getCurrentUrl()
- 类型错误:无法读取未定义的属性“apply”,在测试中使用 javascript apply
- 如何在摩卡测试中使用“定义”
- 如何在单元测试中使用此JavaScript代码
- angularjs单元测试何时使用$rootScope$new()
- 在 Qunit 测试中使用 Zend 部分视图帮助程序
- 不能在 QUnit 测试中使用从 http url 引用的 jQuery
- 不能在我的摩卡测试中使用require,通过大口大口的业力跑步者
- beforeEach 不会在模块化 QUnit/Sinon 测试中使用 CoffeeScript 中的 Require.
- 如何在我的 js 测试中使用模拟
- 在客户端摩卡单元测试期间使用外部类
- 如何在angular.js测试中使用$http的实际实现
- 什么是javascript注入,以及如何在软件测试中使用它
- 如何让angularJS在jasmine测试中使用$http和$resource的实际实现
- AngularJS使用Karma进行端到端测试,使用静态文件而不是服务器
- 我们应该在AngularJS项目的Karma单元级测试中使用CSS吗
- 有人能解释一下在用qunit进行单元测试时使用qunit夹具吗
- 我如何在Koa.js应用程序的验收测试中使用ES2016 (ES7) async/await ?
- 在端到端测试中使用跨平台键盘快捷键