Précédent   Forum du club des développeurs et IT Pro > Java > EDI et OUTILS pour Java > Tests et Performance
Tests et Performance Vos questions sur les APIs et Outils de tests unitaires, d'intégration, de performance, profiling, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/02/2012, 09h16   #1
andlio
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 304
Points : 81
Points : 81
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 ?
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2012, 10h23   #2
we.are.the.storm
Membre habitué
 
Avatar de we.are.the.storm
 
Inscription : février 2009
Messages : 112
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : février 2009
Messages : 112
Points : 128
Points : 128
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.
__________________
jnesis.com
we.are.the.storm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2012, 11h31   #3
andlio
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 304
Points : 81
Points : 81
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...
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2012, 12h05   #4
paissad
Modérateur
 
Avatar de paissad
 
Homme Papa I. Diakhaté
Ingénieur de développement (Java/JEE & webMethods) / Admin systèmes Linux
Inscription : avril 2006
Messages : 899
Détails du profil
Informations personnelles :
Nom : Homme Papa I. Diakhaté
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur de développement (Java/JEE & webMethods) / Admin systèmes Linux
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2006
Messages : 899
Points : 2 486
Points : 2 486
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
paissad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2012, 14h11   #5
leminipouce
Membre chevronné
 
Avatar de leminipouce
 
Homme Olivier
Ingénieur développement logiciels
Inscription : janvier 2004
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : janvier 2004
Messages : 659
Points : 786
Points : 786
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 !
leminipouce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2012, 21h06   #6
andlio
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 304
Points : 81
Points : 81
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 !
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2012, 10h50   #7
leminipouce
Membre chevronné
 
Avatar de leminipouce
 
Homme Olivier
Ingénieur développement logiciels
Inscription : janvier 2004
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : janvier 2004
Messages : 659
Points : 786
Points : 786
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 !
leminipouce est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/03/2012, 08h47   #8
andlio
Membre régulier
 
Homme Lionel ANDRE
Inscription : avril 2005
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Lionel ANDRE
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : avril 2005
Messages : 304
Points : 81
Points : 81
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 ^^
andlio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h58.


 
 
 
 
Partenaires

Hébergement Web