pourquoi junit4 n'a pas Assert.assertArrayEquals () pour doubles [] s?
Question
Il semble y avoir des méthodes Assert.assertArrayEquals()
dans junit4 pour toutes les primitives autres que le double, par exemple.
Assert.assertArrayEquals(int[] expected, int[] actual)
et
Assert.assertArrayEquals(char[] expected, char[] actual)
mais pas
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
ou
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(ce dernier pour tenir compte des plages variables de doubles). Y at-il une raison fondamentale pour laquelle je ne devrais pas écrire une telle fonction?
Autres conseils
La méthode semble avoir été ajouté dans JUnit 4.6, mais pour une raison quelconque manque à 4.5 et les versions précédentes. Je n'attendre aucun problème mise à niveau vers une version plus récente JUnit.
Selon la base de données de bogue JUnit, ils sont « travail sur elle ». Sur la base d'autres réponses, il semble que la base de données de bogue est pas complètement en phase avec la réalité.
il suffit d'utiliser:
AssertTrue(**message**, Arrays.equals(**expected**,**result**)
Vous pouvez en avoir besoin pour arrondir vos valeurs de résultat pour effectuer le test prévu:
public double roundTo2Decimals(double val) {
DecimalFormat df2 = new DecimalFormat("###.####");
return Double.valueOf(df2.format(val));
}
Voir javdoc pour plus d'informations