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?
Réponses
Trop de publicités?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.
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: