如何以一定的公差断言正确的十进制值?
可以说我想断言这一点: 1 / 3
我不想用这样的长字符串断言它:equal(1 / 3, 0.3333333333333333)
我想像这样指定它的容差:equal(1 / 3, 0.33, 0.01)
//如...值可以从 0.32 到 0.34
这在q-unit中可能吗?一种可能的解决方案是,如果我将结果乘以 1000 并去掉所有小数位......但我将编写许多这样的测试,并且更愿意使用任何已经实现的 q-unit 功能。
似乎没有内置功能,但您可以自己制作:
function decEqual(actual expected, tolerance, message) {
ok(Math.abs(actual - expected) <= tolerance, message);
}
然后像这样使用它:
decEqual(1 / 3, 0.33, 0.01, 'Invalid third');
qunit 有足够接近的插件。它使用 2 个断言方法扩展 qunit,这些方法完全符合您的需要: https ://github.com/jquery/qunit/tree/master/addons/close-enough