Bonjour,
Je vaudrais tester avec jUnit 4 la levée d’une exception. Cela est possible avec Asser.fail()
Mais comment faire si je veux tester le cas ou l’exception n’est pas levée ?
Merci beaucoup
Bonjour,
Je vaudrais tester avec jUnit 4 la levée d’une exception. Cela est possible avec Asser.fail()
Mais comment faire si je veux tester le cas ou l’exception n’est pas levée ?
Merci beaucoup
Soit une méthode method() qui lance une Exception MaException
Pour vérifier que la méthode ne lance pas l'exception, on peut écrire cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try{ method() Assert.assertTrue(true); } catch ( MaException me){ Assert.fail(); }
merci pour la réponse.
donc si j'ai bien compris et en testant ma classe avec junit sur eclipse. si ma méthode me retourne une exception, et je veux tester que je vais tomber dans le bloc catch, le test junit doit m'afficher quoi? c vert ou rouge?
Pourquoi ne pas faire plus simple :
Et pour tester que la même méthode déclenche bien une exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Test public void monTest() throws MonException { maMethod(); // peut lever une exception dans ce cas le TU échoue }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Test public void monTest() { try { maMethod(); Assert.fail("maMethod devrait lancer une exception"); } catch (MonException e) { // Rien dans le catch puisque c'est le comportement attendu. } }
Tu peux aussi utiliser l'attribut expected de l'annotation pour dire qu'une exception est attendue. Si elle n'a pas lieu, JUnit signalera une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part @Test(expected=MonException.class)
++
Foucha.
=========
"du code propre c'est du code qui fait exactement ce qu'on croit que ça fait"
Mes Articles DVP
Partager