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?

Était-ce utile?

La solution

Il a une telle méthode (en 4.7), bien qu'il ne soit pas documenté sur le javadoc en ligne . Ce fut certainement un oubli dans la javadoc / version, mais il est là maintenant.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top