98 votes

Quelle est la différence entre échec et erreur dans JUnit?

J'exécute des tests JUnit sur une base de code volumineuse et je me rends compte que parfois, je reçois des "erreurs", alors que d'autres fois, je reçois des "échecs". Quelle est la différence?

119voto

froadie Points 15184

Ok, je viens de remarquer un motif et je pense l'avoir compris (corrigez-moi si je me trompe). Il me semble que les échecs surviennent lorsque vos cas de test échouent, c'est-à-dire que vos assertions sont incorrectes. Les erreurs sont des erreurs inattendues qui se produisent lors de la tentative d'exécution du test - exceptions, etc.

16voto

Neel Points 585

Si votre test déclenche une exception qui n'obtient pas propagée à travers l'Affirmation cadre de Junit, il est rapporté comme une erreur. Par exemple, un NullPointer, ou un ClassNotFound exception signaler une erreur:

String s = null;
s.trim();

ou,

try {

    // your code
} catch(Exception e) {
    // log the exception
    throw new MyException(e);
}

Cela dit, le rapport d'un échec:

Assert.fail("Failure here");

ou,

Assert.assertEquals(1, 2);

ou encore:

throw new AssertionException(e);

Il dépend de la Junit version que vous utilisez. Junit 4 - permettra de faire la distinction entre un échec et une erreur, mais Junit 4 simplifie comme des échecs.

Lien suivant fournit plus d'informations intéressantes:

http://www.devx.com/Java/Article/31983/1763/page/2

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