it-swarm.com.de

JUnit assertEquals (doppelt erwartet, doppelt aktuell, doppelt epsilon)

Mögliches Duplikat:
JUnit: assertEquals für doppelte Werte

Anscheinend ist die assertEquals(double expected, double actual) veraltet.

Die Javadocs für JUnit fehlen überraschenderweise, wenn man bedenkt, dass sie weit verbreitet sind. Können Sie mir zeigen, wie man die neue Funktion assertEquals(double expected, double actual, double epsilon) benutzt?

87
LuxuryMode

Epsilon ist Ihr "Fuzz-Faktor", da Doppelte möglicherweise nicht genau gleich sind. Mit Epsilon können Sie beschreiben, wie nah sie sein müssen.

Wenn Sie mit 3.14159 gerechnet haben, aber irgendwo zwischen 3.14059 und 3.14259 (also innerhalb von 0.001) arbeiten, sollten Sie so etwas schreiben

double myPi = 22.0d / 7.0d; //Don't use this in real life!
assertEquals(3.14159, myPi, 0.001);

(Übrigens, 22/7 ergibt 3.1428+ und würde die Behauptung verfehlen. Dies ist eine gute Sache.)

145
rajah9