2017-02-17 3 views
1

Mit TestNG des Assert.assertEquals(double expected, double actual, double delta), was eine gute Zahl für eine Delta nutzen würde über die Nummern (Assertion schlug fehl, da kein Delta)TestNG AssertEquals double - gute Zahl für ein Double?

AssertionError: expected [121.97] but found [121.96999999999998] 

I 1, versuchte mit .01 und .001, aber alle drei bestanden. Ich möchte die Erlaubnis für den Erfolg sehr klein halten (mit anderen Worten, wenn die "tatsächlichen Zahlen" (aus meiner Sicht sowieso) waren 121,97 und 121,96 Ich möchte, dass der Test fehlschlägt. Danke!

Antwort

2

Wenn Sie wollen Ihr Test für 121.97 und 121.96 ... versuchen Sie es mit Delta scheitern, die kleiner als
|121.97 - 121.96| = 0.01 ist
Wie wäre.

final double DELTA = 0.001; 
assertEquals(121.97, 121.96, DELTA); 

Ausgang:

java.lang.AssertionError: expected [121.96] but found [121.97] 
Expected :121.96 
Actual :121.97 

Im allgemeinen Fall ... wenn Sie Ihre Behauptung für a und b,
Verwendung Delta scheitern wollen, die kleiner als |a - b| ist.

Verwandte Themen