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 :

Une méthode tearDown pr TestCase et pas par method ? [JUnit]


Sujet :

Tests et Performance Java

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Une méthode tearDown pr TestCase et pas par method ?
    Bonjour,

    Dans un TestCase j'ai une méthode d'initialisation setUp qui est longue à s'éxécuter (chargement depuis disque de quantité importante de donnée avec des traitements assez longs...).

    Comme mes cas de tests ne modifie pas l'état des données lors de l'éxécution, je souhaite ne l'éxécuter qu'une seule fois. Ce qui n'est pas un problème en soit (dans le constructeur ou bien contrôle avec une variable d'état dans le setUp).

    Mon problème est dans l'enchainement des TestsCase. Il est nécessaire que l'état initiale soit rétablie après l'éxécution de ma classe de test. Malheureusement cela ne peut pas se faire dans le tearDown qui est appelé à la fin de chaque méthode de test.

    Existe-t-il une méthode qui est appélé au sein de la classe TestCase après l'éxécution du dernier test (rien trouvé dans la doc à ce sujet) ?

    Sinon, je suis preneur d'idée pour résoudre ce problème.

    Je pense à implémenter un compteur d'éxécution pour le tearDown afin de détecter le dernier appel. D'autres idées ?

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    J'avais trouve dans le temps une astuce pour faire ca pour une TestSuite complete dans la FAQ de JUnit..

    Ce qu'il faut faire, c'est utiliser la classe TestSetup et passer au constructeur ta TestSuite, ensuite tu implementes les methodes setUp, tearDown du TestSetup pour faire ce que tu veux...

    Perso je me suis developpe une classe TestHelper qui execute les methodes static onceSetUp et onceTearDown si elles sont presentes dans mon TestCase, comme ca tout mon code est au meme endroit et on en parle plus ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 10
    Points : 4
    Points
    4
    Par défaut

    Bonjour et merci pour l'info.

    J'avais finalement implémenté la solution qui consiste à utiliser un compteur d'éxécution des méthodes de test.

    Mais il me reste un problème (qui je pense est présent avec le contexte globale de TestSuite que vous conseillez).

    Lorsque un des tests échoue, la methode tearDown n'est pas appelé, avec pour résultat le non rétablissement de l'environnement après le TestCase.

    Les TestCase suivant s'éxécutent alors avec l'environnement de ce TestCase, ce qui peut les faire échouer. Au débeugage ce n'est en plus pas nécessairement facile de faire le lien.

    Ce problème n'est pas lié à la technique, car le problème est dejà présent avec un seul TestCase. En fait il doit bien exister une méthode qui est appelé lorsque un TestCase échoue ?

    En tout cas merci pour l'info.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/09/2014, 15h49
  2. Réponses: 9
    Dernier message: 20/06/2010, 20h30
  3. Réponses: 4
    Dernier message: 08/01/2010, 13h59
  4. Réponses: 3
    Dernier message: 31/10/2006, 16h22
  5. Réponses: 3
    Dernier message: 16/04/2004, 16h51

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