219 votes

Comparaison des tableaux dans les assertions JUnit, concis de manière intégrée?

Existe-t-il un moyen intégré et concis de faire des assertions d'égales sur deux tableaux de types similaires dans JUnit? Par défaut (au moins dans JUnit 4), il semble qu'une instance soit comparée sur l'objet tableau lui-même.

EG, ne fonctionne pas:

 int[] expectedResult = new int[] { 116800,  116800 };
int[] result = new GraphixMask().sortedAreas(rectangles);
assertEquals(expectedResult, result);
 

Bien sûr, je peux le faire manuellement avec:

 assertEquals(expectedResult.length, result.length);
for (int i = 0; i < expectedResult.length; i++)
    assertEquals("mismatch at " + i, expectedResult[i], result[i]);
 

..Mais y a-t-il une meilleure façon?

402voto

Andy Thomas Points 30979

Utilisez la méthode de org.junit.Assert assertArrayEquals :

 import org.junit.Assert;
...

Assert.assertArrayEquals( expectedResult, result );
 

Si cette méthode n'est pas disponible, vous avez peut-être importé accidentellement la classe Assert de junit.framework .

42voto

Bozho Points 273663

Vous pouvez utiliser Arrays.equals(..) :

 assertTrue(Arrays.equals(expectedResult, result));
 

17voto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X