2

floatでassertEqualsメソッドを使用してみましたが、eclipseはメソッドが減価償却されたと言っています。したがって、次の代替案は受け入れられますか?

Assert.assertTrue("Total does not match expected total :",
                                            receipt.getTotal() == 32.19f);

テストで2つのfloatまたはdoubleを比較するためにassertEqualsを使用してはならない特定の理由はありますか?

一般に、JUnitで2つの10進値が等しいことを表明するための最良の方法は何ですか。JUnitの4.10リリースを使用しています

4

1 に答える 1

4

一般に、プリミティブ型は==と比較できますが、浮動小数点値を使用すると、2つの値は同じように見えますが(文字列としてフォーマットされている場合)、2つの異なる値になります。assertEquals(expected、actual、delta)を使用する必要があります。JUnitの答えを参照してください:double値のassertEquals

ダブル(およびフロート)計算は必ずしも正確ではないため、デルタ(事実上許容誤差)を使用して比較できます。

于 2012-08-05T13:28:51.773 に答える