1

如何以一定的公差断言正确的十进制值?

可以说我想断言这一点: 1 / 3

我不想用这样的长字符串断言它:equal(1 / 3, 0.3333333333333333) 我想像这样指定它的容差:equal(1 / 3, 0.33, 0.01)//如...值可以从 0.32 到 0.34

这在q-unit中可能吗?一种可能的解决方案是,如果我将结果乘以 1000 并去掉所有小数位......但我将编写许多这样的测试,并且更愿意使用任何已经实现的 q-unit 功能。

4

2 回答 2

2

似乎没有内置功能,但您可以自己制作:

function decEqual(actual expected, tolerance, message) {
      ok(Math.abs(actual - expected) <= tolerance, message);
}

然后像这样使用它:

decEqual(1 / 3, 0.33, 0.01, 'Invalid third');
于 2012-11-11T15:02:38.463 回答
2

qunit 有足够接近的插件。它使用 2 个断言方法扩展 qunit,这些方法完全符合您的需要: https ://github.com/jquery/qunit/tree/master/addons/close-enough

于 2012-11-17T03:31:32.240 回答