Cet article est un extrait du livre sur JUnit
Démarche
Nous allons voir comment écrire notre premier test unitaire pas à pas. Pour ce faire, nous utiliserons le projet de la calculatrice comme exemple.
- Tout d’abord, nous créerons le projet de calculatrice.
- Puis nous écrirons la classe d’addition.
- Ensuite, il faudra créer le répertoire des tests dans lequel seront classés tous les tests. Chaque équipe peut décider de la façon dont elle souhaite organiser son répertoire de code source et en particulier le code de test. Il existe néanmoins une façon classique de procéder qui consiste à créer un dossier de tests symétrique au répertoire des sources pour y classer les tests selon la même organisation de paquet. Cette façon de procéder a l’avantage d’isoler les classes de tests des classes de source tout en permettant aux tests d’accéder à la portée de définition du paquet. Ainsi, lors de la génération de code, il est simple d’isoler les tests du code tout en gardant les classes de tests proches du code source dans une vue par paquet.
- Enfin, nous pourrons écrire la classe de tests voulue.
Eclipse
Présentation de l’IDE
Eclipse est aujourd’hui la référence en matière d’environnement de développement et c’est probablement l’outil le plus utilisé. Il bénéficie du soutien de gros industriels ainsi que d’une large communauté. Il intègre aujourd’hui JUnit en standard.
Guide pas à pas
- Cliquez sur File – New – Java Project.
- Nommez votre projet calculatrice en laissant les options par défaut puis cliquez sur OK.
- Ajoutez un package math dans le répertoire src.
- Ajoutez la classe Addition dans le répertoire src.
package math; class Addition { public Long calculer(Long a, Long b) { return a+b; } public Character lireSymbole() { return '-'; } }
- Ajoutez un nouveau dossier de sources nommé tests au même niveau d’arborescence que src.
- Dans l’explorateur de paquets, faites un clic droit sur la classe Addition.
- Dans le menu contextuel, cliquez sur New – JUnit Test Case.
Un panneau s’affiche alors :
Dans ce panneau :
- Sélectionnez le bouton radio New JUnit 4 test.
- Changez le dossier Source folder pour tests.
- Nommez la classe AdditionTest.
- Cochez les cases setUp() et tearDown().
- Dans le champ Class under test, saisissez math.Addition.
- Enfin cliquez sur Finish.
Eclipse va remarquer que la bibliothèque de JUnit est absente du projet et vous propose d’ajouter automatiquement cette dernière au projet.
- Dans le panneau qui apparaît, cliquez sur OK.
Eclipse va maintenant créer automatiquement le squelette de la classe de test :
package math; import org.junit.After; import org.junit.Before; public class AdditionTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } }
Il ne reste plus alors qu’à remplir cette dernière.
package math; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class AdditionTest { protected Addition op; @Before public void setUp() { op = new Addition(); } @After public void tearDown() { } @Test public void testCalculer() throws Exception { assertEquals(new Long(4), op.calculer(new Long(1), new Long(3))); } @Test public void testLireSymbole() throws Exception { assertEquals((Character)'+', op.lireSymbole()); } }
- Dans l’explorateur de paquets, faites un clic droit sur la classe AdditionTest.
- Dans le menu contextuel, cliquez sur Run As – JUnit test.
- Enfin, le premier rapport de tests s’affiche !
La barre de progression est rouge, indiquant qu’au moins un test est en échec. Le rapport d’erreur permet de visualiser les tests en échec et d’afficher la cause et l’origine du problème. Dans ce cas, une erreur s’est glissée sur le symbole de l’addition!
Et vous, comment générez-vous vos tests automatiques?
Bonjour et merci pour ce tutoriel, c’est un bon premier pas dans les tests automatiques pas pour ma part
Merci pour votre retour. Heureux que cela vous ait été utile! 🙂
merci c de la balle
Avec plaisir!
Merci de ce tutoriel enrichissant
et avec plaisir
Très bon exemple pour commencer jUnit!
Merci. Heureux que cela vous soit utile.
Super utile pour un début !
Merci Benoit !
Merci pour le feedback.
merci c’est bien pour commencer avec JUNIT : je suggere quelque chose si jamais vous voulez ameliorer votre tuto : c’est de donner des explications a la fin pour les differentes mises en places des cas de test : “cas droit” et “cas d’erreur” et puis l’interpretation des résultats. autrement c’est mortel, merci encore
Amine,
Merci pour ton retour et ta suggestion.
Cela me donne des idées!
#++
Merci bien Benoit pour cet exemple , c’est quand meme un bon tuto pour débuter les tests unitaires 😀
Merci!
J’aime bien.
Cela permit d’avancer
Heureux que cela ait été utile.
#++
Merci, bon tuto dude. Mais j’pense que tu devrais aussi rajouter un cas avec ” @IgnoreTest ” 🙂
Merci pour ton retour.
J’ai du mal à en voir l’intérêt du @Ingore. Si le test n’est pas utile, j’aurais plutôt tendance à le mettre en commentaire: je trouve cela plus visible.
Je suis curieux de savoir quand cela te semble utile?
T’en sers-tu?
Hello.
Le @Ignore permet de signaler qu’un test est écrit mais que la méthode/le code à tester n’est pas prêt pour test.
Il n’est donc pas question ici de signaler un test inutile mais bien que la méthode/le code correspondant au cas de test n’est pas encore testable.
Sympa dans un contexte TDD.
En espérant avoir éclairci un peu ta lanterne
Ok, merci pour ces précisions.
Merci pour tutoriel, c’est une initiation réussite pour moi dans ce suje tde testing. Tant de fois j’ai entendu parler des tests unitaires et du framework JUnit que j’ai déjà eu l’occasion d’utiliser une fois et très rapidement que j’en ai rien capté. J’espère m’améliorer encore dans ce sujet car je trouve très intéressant.
Merci pour ton retour! Heureux que cela te soit utile.
Je t’invite à parcourir les différents articles pour t’aider à progresser.
#++
Bonjour, merci pour ce tuto c eest très utile pour un début et surtout simple à comprendre.
Pour les curieux, il faut remplacer le signe “+” par un “-” pour ne plus avoir d’erreur.
++
Bonjour,
Moi j’ai tout fait comme la tuto et au moment de faire cette action :”Dans le menu contextuel, cliquez sur Run As – JUnit test.” j’ai un fenêtre qui s’ouvre et qui me dit :”No JUnit test found”.
Quelqu’un pourrai m’aider?
Merci d’avance.
salut merci pour le tuto. j’aimerai vous questionné a propos de ces lignes :
-c quoi le role de cette ligne
protected Addition op;
ma deuxième question est : pourquoi mettre cette line la methodes setUp Exactement
op = new Addition();
Merci beaucoup!!!
bonjour
merci pour ce tuto très utile , j’ai besoin des exceptions c’est si possible
Merci
Bonjour, merci pour ce tutoriel, très intéressant pour un débutant.
Merci!