Quelle est l'utilisation réelle de "fail" dans un scénario de test JUnit ?
Réponses
Trop de publicités?Quelques cas où je l'ai trouvé utile :
- marquer un test qui est incomplet, de sorte qu'il échoue et vous avertit jusqu'à ce que vous puissiez le terminer
- en s'assurant qu'une exception est levée :
try{ // do stuff... fail("Exception not thrown"); }catch(Exception e){ assertTrue(e.hasSomeFlag()); }
Note :
Depuis JUnit4, il existe un moyen plus élégant de tester qu'une exception est levée : Utilisez l'annotation @Test(expected=IndexOutOfBoundsException.class)
Cependant, cela ne fonctionnera pas si vous voulez également inspecter l'exception, alors vous avez toujours besoin de fail()
.
Je pense que le cas d'utilisation habituel est de l'appeler lorsqu'aucune exception n'a été levée dans un test négatif.
Quelque chose comme le pseudo-code suivant :
test_addNilThrowsNullPointerException()
{
try {
foo.add(NIL); // we expect a NullPointerException here
fail("No NullPointerException"); // cause the test to fail if we reach this
} catch (NullNullPointerException e) {
// OK got the expected exception
}
}
Je l'ai utilisé dans le cas où quelque chose aurait pu mal tourner dans ma méthode @Before.
public Object obj;
@Before
public void setUp() {
// Do some set up
obj = new Object();
}
@Test
public void testObjectManipulation() {
if(obj == null) {
fail("obj should not be null");
}
// Do some other valuable testing
}
- Réponses précédentes
- Plus de réponses