IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tests et Performance Java Discussion :

jUnit 4 et exceptions [JUnit]


Sujet :

Tests et Performance Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Par défaut jUnit 4 et exceptions
    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

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    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();
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Par défaut
    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?

  4. #4
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Pourquoi ne pas faire plus simple :
    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
    }
    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
    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.
      }
    }

  5. #5
    Membre éprouvé
    Avatar de foucha
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Par défaut
    Citation Envoyé par gronono Voir le message
    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

  6. #6
    Membre chevronné Avatar de gronono
    Inscrit en
    Novembre 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2003
    Messages : 457
    Par défaut
    Citation Envoyé par foucha Voir le message
    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)
    Je ne connaissais pas. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JUnit] Soucis avec des tests d'exception (JUnit 4)
    Par polymorphisme dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 02/03/2012, 10h06
  2. Réponses: 3
    Dernier message: 10/08/2010, 15h28
  3. [JUnit] Tests Junit avec exceptions
    Par alex2746 dans le forum Tests et Performance
    Réponses: 8
    Dernier message: 07/06/2010, 22h41
  4. [JUnit] IO exception dans JUNIT
    Par mmahouac dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 06/11/2008, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo