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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top