Unit testing dans java

2
11494

Dans cette partie nous allons voir comment tester notre code dans java avec les unit testing. Qui est tout simplement une méthode utiliser pour tester des parties de notre application afin de voir si on obtient le résultat voulu sans vraiment devoir compiler notre application.

Ajouter JUnit à notre projet

Nous allons commencer par le début c’est-à-dire ajouter JUnit à notre projet dans notre exemple nous allons utiliser la version 5 qui se nomme Jupiter mais le principe reste le même.

Nous allons sur Maven repository pour chercher le tag qui va permettre à Maven de télécharger et installer le Framework JUnit Jupiter Api

Puis nous allons faire en sorte que notre projet sache compiler avec java 11 ou plus tout dépend de quand vous lisez cet article.

Tester une class

Une fois que nos outils sont installés nous allons créer une classe que nous allons nommer Person ou nous allons créer une simple class qui contiendra un nom et un Age

Au paravent on avait l’habitude de créer une classe qu’on nomme Main ou on place une méthode qui nous permet de lancer notre application.  Mais cela nous ne va plus le faire du moins pour tester notre application.

Quand on créer un projet Maven on peut voir qu’il y a un dossier qui se nomme test qui est créer automatiquement.

C’est ici que nous allons écrire nos tests. Je vous invite à créer une nouvelle class dans Test->java que nous allons nommer TestMyClass

Pour le moment il n’y a rien de spéciale c’est une class comme une autre et on peut si on le souhaite créer du code ici.

Mais nous allons utiliser cette class afin de tester notre class Person. Comment allons nous faire cela. Hé ben tout simplement en créant des méthodes de test comme suite.

Pour le moment cette méthode ne sert à rien car on ne peut pas la tester car nous n’avons pas mentionner à notre classe que cette méthode s’agit d’un test. Cela nous pouvons le faire grâce a la librairie de JUnit que nous avons ajouter à notre projet via Maven.

JUnit nous permet de tester des frayements de notre code en ajoutant tout simplement la mention @Test au-dessus de la méthode.

Et la par magie nous avons un bouton Play à gauche à la ligne 4 et 6 qui nous permet de tester notre code.

Le premier bouton Play qui se trouve sur la ligne 4 nous permet de tester toutes les unités de test de la class tandis que le bouton Play sur la ligne 6 nous permet de tester une seule unité de test.

Nous allons tester cela pour vois ce qu’il se passe.

On peut voir que le test c’est lancer et que le system n’as pas trouver de problème donc le test est bon

Et on peut aussi voir dans notre console de test le résultat du print

Les affirmations

Ce que nous avons vu c’est une simple façon de tester notre application mais la puissance du unit testing est de faire des affirmations et donc voir s’ils sont vrais ou pas.

Et donc si on modifie notre code et on place une affirmation (assertion) qui demande de vérifier qu’un certain nom est égal au nom de l’objet comme suite et qu’on lance le test

On devrait avoir un test raté.

Et le test nous mentionne aussi la raison pourquoi elle a échoué car il attendait un String qui contient le mot bob et on lui refile un String qui contient daniel donc le test à échouer.

Si on changer le Exepted par daniel le test devrait passer

Et voila le test est bon

Comme nous n’avons pas demander au code d’imprimer quelque chose dans la console elle est vide.

Nous allons faire un autre test ou nous allons voir si l’Age de la personne est plus grand que 30 pour cela nous allons créer un nouveau test comme suite.

Qui devrais donner un test réussi.

Tester toutes les unités en une seul fois.

Vous vous rappeler au début de ce chapitre nous avons vue qu’il y avait un bouton Play sur la ligne 4 qui est désormais sur la ligne 5.

C’est le test de la class cela veut dire que nous allons tester toutes les unités de test de la class.

Et si tout est bon alors on obtient le résultat suivant.

Si un test n’est pas bon alors on pourrait voir quel test n’est pas passer.

C’est très pratique quand on à beaucoup d’unité de test on peut voir d’un clin d’œil quelle à écouter et donc corriger notre code afin que chaque unité de test soit bonne.

Initialisation avant chaque test

Une autre des particularités des test est que nous pouvons programmer notre test de telle façon qu’avant chaque test il configure les variables de notre class. Ceci est plutôt pratique si nous allons modifier certaine variable dans notre test mais qu’ils doivent être réinitialiser avant chaque test.

Dans notre exemple je vais placer person comme une variable de class ainsi on ne doit pas la créer à chaque fois.

Puis nous allons créer une méthode qui vas initialiser l’objet person avec le nom daniel et l’Age 36. Cela on le fait avec l’annotation beforeach qui est veut simplement dire avec chaque test lance cette méthode.

Conclusion

Voilà nous arrivons à la fin de cette partie ou nous avons vu comment fonctionne les unit testing dans java et je vous encourage fortement à les utiliser apres chaque implémentation d’une nouvelle méthode dans votre application afin de vérifier qu’il ne créer pas de problème avec les anciens tests et qu’il fonctionne.

Dans une prochaine video nous allons voir un concept de programmation qui se nomme TDD qui est le test Driven développement. D’ici là je vous souhaite une très bonne programmation salut tout le monde.

2 Commentaires

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.