Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Membre régulier
    Homme Profil pro Lionel ANDRE
    Inscrit en
    avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme Lionel ANDRE
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : avril 2005
    Messages : 307
    Points : 71
    Points
    71

    Par défaut Conseils pour les tests ?

    Bonjour,

    J'aurais besoin de quelques conseils pour le développement de mes tests.

    Je ne sais pas quelle est la meilleure solution entre :
    • Développer une méthode de test par méthode à tester. C'est à dire que tous les cas de tests seront dans une seule méthode de test
    • Développer plusieurs méthodes de tests par méthode à tester. C'est à dire qu'une méthode de test correspondra à un cas de test d'une méthode à tester


    Comment développez-vous vos tests ?

  2. #2
    Membre habitué Avatar de we.are.the.storm
    Profil pro
    Inscrit en
    février 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : février 2009
    Messages : 115
    Points : 125
    Points
    125

    Par défaut

    Personnellement j'utilise généralement la deuxième solution,

    Je peux vouloir tester plusieurs qu'une méthode se déroule correctement lors de son contexte d'utilisation traditionnel, mais aussi qu'elle renvoie telle ou telle exception sur des cas particuliers par exemple.

  3. #3
    Membre régulier
    Homme Profil pro Lionel ANDRE
    Inscrit en
    avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme Lionel ANDRE
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : avril 2005
    Messages : 307
    Points : 71
    Points
    71

    Par défaut

    Merci pour ta réponse.

    Je suis dans le même cas que toi. Je teste à la fois que les valeurs retournées sont correctes en cas de succès, mais également que les exceptions sont correctement levées en cas de problème.

    Personnellement j'ai commencé à tester avec la 1ère solution et elle ne me semble pas très facile à maintenir...

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro Papa I. Diakhaté
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    avril 2006
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Nom : Homme Papa I. Diakhaté
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2006
    Messages : 1 015
    Points : 2 391
    Points
    2 391

    Par défaut

    Bonjour,

    d'ailleurs, c'est la philosophie des tests unitaires hein. Chaque méthode dont le niveau d'encapsulation est protected, package ou public devrait avoir sa/ses propre(s) méthode(s) de tests.
    Il faut normalement pour chaque test unitaire (c'est à dire pour chaque méthode annotée par @Test) tester un cas possible (valeur attendue, valeur non attendue, exception attendue, ...)

    Donc, ce n'est très certainement pas une bonne idée de tout tester (voire de tester plusieurs choses) sur une seule méthode de test.

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Modérateur aux rubriques Linux/Unix, Java et au chat d'entraide du site.
    http://blog.paissad.net

  5. #5
    Membre Expert Avatar de leminipouce
    Homme Profil pro Olivier
    Ingénieur développement logiciels
    Inscrit en
    janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : janvier 2004
    Messages : 754
    Points : 1 069
    Points
    1 069

    Par défaut

    Comme le dit paissad, il s'agit de test unitaires. Ils doivent donc tester des unités, pas des ensembles, des groupes, etc, etc...

    D'ailleurs, le problème majeur de tout tester dans une seule méthode c'est que si ta première assertion plante, tu ne sauras pas, tant que tu n'as pas ré-exécuté tes tests, que les 48 assertions suivantes plantent aussi. Et devoir exécuter 49 fois ta méthode de tests pour voir tous les cas de plantage c'est pas super productif
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  6. #6
    Membre régulier
    Homme Profil pro Lionel ANDRE
    Inscrit en
    avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme Lionel ANDRE
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : avril 2005
    Messages : 307
    Points : 71
    Points
    71

    Par défaut

    Bonjour,

    J'ai re-développé mes classes de test ! Maintenant j'ai 1 méthode par test :
    Code :
    1
    2
    3
    public void testMaMethode_whenInvalidArguments();
    public void testMaMethode_whenSuccess();
    //...
    au lieu de
    Code :
    public void testMaMethode();
    Merci pour vos retours !

  7. #7
    Membre Expert Avatar de leminipouce
    Homme Profil pro Olivier
    Ingénieur développement logiciels
    Inscrit en
    janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : janvier 2004
    Messages : 754
    Points : 1 069
    Points
    1 069

    Par défaut

    Ravi que ça t'ait servi.

    Pour info, par respect de la convention de nommage Sun des noms de méthodes, il faudrait que tu nommes tes méthodes sans undescore !
    http://www.loribel.com/java/normes/nameMethod.html

    Code :
    public void testMaMethodeWhenInvalidArguments(); public void testMaMethodeWhenSuccess();
    Si , et la ont échoué mais pas nous, pensez à dire et cliquez sur . Merci !

    Ici, c'est un forum, pas une foire. Il y a de respectables règles... à respecter !

  8. #8
    Membre régulier
    Homme Profil pro Lionel ANDRE
    Inscrit en
    avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Nom : Homme Lionel ANDRE
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : avril 2005
    Messages : 307
    Points : 71
    Points
    71

    Par défaut

    Oui c'est vrai. C'est ce que j'avais fait au début mais je trouvais que c'était moins lisible...
    Mais je vais suivre la norme ^^

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •