warum hat junit4 nicht Assert.assertArrayEquals () für double [] s?
Frage
erscheinen Es Assert.assertArrayEquals()
Methoden in junit4 für alle Primitiven andere als das Doppelte sein, z.
Assert.assertArrayEquals(int[] expected, int[] actual)
und
Assert.assertArrayEquals(char[] expected, char[] actual)
aber nicht
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
oder
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(letztere zu Konto für variable Bereiche von Doppelzimmer). Gibt es ein wesentlicher Grund, warum ich nicht eine solche Funktion schreiben sollte?
Lösung
Es hat ein solches Verfahren haben (in 4.7), obwohl es nicht auf dem Online-javadoc dokumentiert hier . Es war sicherlich ein Versehen in der javadoc / Version, aber es ist jetzt da.
Andere Tipps
scheint Das Verfahren wurde in JUnit 4.6, hinzugefügt zu haben, aber aus irgendeinem Grunde ist in 4.5 und früheren Versionen fehlen. Ich würde nicht erwarten, dass Probleme auf eine neuere JUnit Version zu aktualisieren.
Nach der JUnit Bug-Datenbank, sie sind „ Arbeits auf sie “. Basierend auf anderen Antworten, es klingt wie die Bug-Datenbank nicht vollständig synchron mit der Realität ist.
nur Gebrauch:
AssertTrue(**message**, Arrays.equals(**expected**,**result**)
Sie können diese benötigen, um Ihre Ergebniswerte zu Test abzurunden gegen erwarten:
public double roundTo2Decimals(double val) {
DecimalFormat df2 = new DecimalFormat("###.####");
return Double.valueOf(df2.format(val));
}
Siehe javdoc für weitere Informationen