1

少し許容範囲内で正しい 10 進値をアサートするにはどうすればよいですか?

これを主張したいとしましょう: 1 / 3

このような長い文字列でこれをアサートしたくありません:equal(1 / 3, 0.3333333333333333) 次のように許容範囲を指定したいと思います: equal(1 / 3, 0.33, 0.01)// As in... value can be from 0.32 to 0.34

これはqユニットで可能ですか?これに対する1つの可能な解決策は、結果に1000などを掛けて小数点以下をすべて切り捨てることです...しかし、私はそのような多くのテストを作成し、すでに実装されているqユニットの機能を使用することを好みます。

4

2 に答える 2

2

qunitには十分に近いアドオンがあります。それはあなたが必要とすることを正確に行う2つのアサーションメソッドでqunitを拡張します: https ://github.com/jquery/qunit/tree/master/addons/close-enough

于 2012-11-17T03:31:32.240 に答える
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 に答える