Perché Junit4 non ha Assert.assertArrayEquals () per doppia [] s?
Domanda
Non ci sembrano essere Assert.assertArrayEquals()
metodi in Junit4 per tutte le primitive diverse doppia, per es.
Assert.assertArrayEquals(int[] expected, int[] actual)
e
Assert.assertArrayEquals(char[] expected, char[] actual)
, ma non
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
o
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(quest'ultimo per tenere conto di intervalli variabili di doppie). C'è una ragione fondamentale per cui non dovrei scrivere un tale funzione?
Soluzione
Ha un tale metodo (in 4.7), anche se non è documentato sul javadoc linea qui . E 'stato sicuramente una svista nel javadoc / versione, ma è lì adesso.
Altri suggerimenti
Il metodo sembra essere stato aggiunto nel JUnit 4.6, ma è per qualche ragione manca in 4.5 e versioni precedenti. Non mi aspetto alcun problema aggiornamento a una versione più recente JUnit.
Secondo la banca dati JUnit bug, sono " di lavoro su di esso ". Sulla base di altre risposte, suona come il database dei bug non è completamente in sintonia con la realtà.
basta usare:
AssertTrue(**message**, Arrays.equals(**expected**,**result**)
Potrebbe essere necessario questo per arrotondare i tuoi valori dei risultati da confrontare previsto:
public double roundTo2Decimals(double val) {
DecimalFormat df2 = new DecimalFormat("###.####");
return Double.valueOf(df2.format(val));
}
javdoc per maggiori informazioni