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
の追加につながった機能リクエストに関して このディスカッション も見つかりました。これにより、値と+/-デルタを指定できるため、基本的に、結果を確認する精度を指定できます。
percentage.should.be.closeTo(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);