Contenu du cours
Bibliothèque Java JUnit. Types de Tests
Bibliothèque Java JUnit. Types de Tests
Comment Tester les Méthodes `void`
L'algorithme pour écrire des tests unitaires nous est clair. Tout d'abord, nous spécifions l'input
, puis le résultat expected
, et enfin, le résultat actual
retourné par la méthode en cours de test. Mais la question se pose de savoir comment tester les méthodes qui ne retournent rien ?
Tester les méthodes void
peut être un processus difficile car nous ne pouvons pas tester la valeur de retour. Cependant, les méthodes void changent souvent l'état d'un objet, nous pouvons donc tester leur fonctionnalité de cette manière.
Compteur
Écrivons une méthode void
avec laquelle nous allons travailler ; ce sera une méthode simple qui incrémente une valeur ( oui, Java a déjà une telle méthode, mais je pense que cette méthode sera un excellent exemple pour les tests ) :
Counter
public class Counter { private int count = 0; public void increment() { count++; } public int getCount() { return count; } }
Ci-dessus, vous pouvez voir la classe Counter
, qui contient une méthode increment
et stocke une variable appelée count
. Par exemple, si nous avons besoin de compter quelque chose, nous pouvons simplement appeler cette méthode en utilisant la construction Counter.increment()
, et la variable privée count
augmentera.
Création de Tests
Tout d'abord, nous devons créer une instance de cette classe, puis utiliser la méthode void
sur cette instance.
Ensuite, nous vérifions simplement si cet élément n'est pas égal à zéro, et s'il ne l'est pas, cela signifie que la méthode a fonctionné avec succès, et que la variable a été incrémentée. Voici à quoi ressemblera le premier test unitaire :
Comme vous pouvez le voir, nous avons suivi l'algorithme, puis nous vérifions l'état attendu de l'objet counter
.
Après une incrémentation, l'objet a changé sa valeur à +1
, donc il devrait être égal à un, et c'est exactement ce que nous vérifions.
La seule chose qu'il nous reste à vérifier est lorsque nous incrémentons plusieurs fois. Par exemple, écrivons un test unitaire où nous incrémentons la variable count
plusieurs fois et vérifions l'exactitude du résultat :
Ici, nous créons également un nouvel objet et appelons la méthode increment()
trois fois. Ensuite, nous comparons le résultat avec 3, testant ainsi si la méthode fonctionne correctement.
Optimisation des Tests
Ces tests peuvent également être optimisés en utilisant l'annotation @BeforeEach
et en créant un objet Counter
au début des tests.
Vous pouvez le faire comme ceci :
De cette façon, nous pouvons éliminer la création de l'objet counter
de chaque test unitaire, car il est maintenant créé automatiquement. Voici le code final pour le test unitaire de la méthode void increment()
:
Dans le prochain chapitre, nous aborderons les différents types d'assertions et comment les utiliser.
Merci pour vos commentaires !