q单位的十进制值断言

时间:2012-11-01 13:01:59

标签: jquery qunit

如何用一点容差来断言正确的十进制值?

假设我想断言:1 / 3

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

这可能在q-unit中?一个可能的解决方案是,如果我将结果乘以1000并删除所有小数位......但我将编写许多此类测试,并且更愿意使用q-unit的任何已实现的功能。< / p>

2 个答案:

答案 0 :(得分:2)

似乎没有内置功能,但您可以创建自己的功能:

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

然后像这样使用它:

decEqual(1 / 3, 0.33, 0.01, 'Invalid third');

答案 1 :(得分:2)

qunit有足够的插件。它使用2种断言方法扩展qunit,这些方法正是您所需要的: https://github.com/jquery/qunit/tree/master/addons/close-enough