"Redo : ajout de tests unitaires".
Quentin Ducasse.
-Bonjour à tous.
Dans cette 2e partie du Redo, on verra comment créer une classe de test
et comment créer plusieurs tests
pour tester les méthodes qu'on pourra définir dans notre classe principale.
D'abord, pour créer une classe de test, on va aller ici.
On va créer une classe qui s'appellera Counter, mais CounterTest.
Et on veut que ce soit non pas une sous-classe d'objet,
mais une sous-classe de "TestCase".
Donc, on peut compiler, Cmd+S.
La classe de test est arrivée.
C'est une classe de test car il y a le bouton gris, à côté.
Le bouton gris permet de lancer tous les tests qui sont à l'intérieur.
Si on clique dessus, ça ne fait pas d'effet, car il n'y a pas de test.
Si on veut créer une méthode de test, on peut se diriger sur cet onglet.
Si on veut reproduire le comportement qu'on a fait dans le playground,
on peut l'appeler "testCounterIsSetAndRead",
puisqu'on va créer notre compteur 7, sa variable d'instance, puis la lire.
Donc on va copier et coller ce comportement.
Sauf qu'on veut, à la fin, que le test vérifie la dernière expression.
On ne veut pas simplement qu'il nous l'affiche.
Pour ce faire, on va faire "self assert"
qui va vérifier que sa variable d'instance égale...
Donc "equals:7".
C'est le comportement qu'on aimerait.
Maintenant, le triangle orange, on compile. Cmd+S.
On voit que la méthode s'est créée. Il y aussi un bouton gris à côté.
On peut cliquer dessus pour lancer le test. Le test est vert.
C'est un bon moment pour sauvegarder votre image.
Donc vous cliquez ici, Pharo, Save.
On va sûrement vouloir écrire d'autres tests
et on va se servir d'un modèle qui s'appelle Test Driven Development
qui nous demande d'écrire le test avant d'écrire la méthode.
Donc, par exemple, ce qu'on peut faire, c'est créer notre compteur.
On va garder cette méthode-là, mais on veut faire quelque chose qui incrémente.
Donc, on va faire "testIncrement".
Très bien. On va mettre notre compteur à, par exemple, 2.
On va appeler deux fois la méthode increment.
Donc, avec le point-virgule qui va rappeler la méthode sur c.
Et on va vérifier que le résultat est bien égal à... Donc, 2+2, 4.
"c count equals:4". On est d'accord.
Maintenant, on peut compiler cette méthode de test.
On voit qu'elle apparaît, mais si on l'exécute, elle devrait s'arrêter.
On obtient une erreur, puisqu'il n'a pas compris increment.
Le test est rouge. Il va falloir qu'on corrige ça.
Pour corriger ça, on va se poser dans la classe Counter
et on va définir notre méthode increment.
"Increment"...
On veut que "c count" soit...
Que "count", pardon, soit égal à "count + 1".
On sauvegarde. Notre méthode est créée.
On voit que le bouton est rouge, à côté,
car il a reconnu le test qui s'appelle testincrement
qui va tester la méthode increment.
On peut lancer directement notre test d'ici.
On voit qu'il passe en vert.
On peut recliquer ici.
On voit que deux tests ont été lancés et les deux sont passés.
Encore une fois, c'est un bon moment pour sauvegarder votre image.
Donc on va sauver notre image.
On va écrire notre dernier test.
Donc "testDecrement", donc D, E.
On va faire la même chose.
On va remplacer "increment" par "decrement"
et on veut, cette fois-ci, que ça soit égal à zéro.
On sauvegarde cette méthode. Elle est apparue ici.
Encore une fois, si on l'exécute, elle ne doit pas marcher.
Elle n'a pas marché car il n'a pas compris "decrement".
C'est normal, on ne l'a pas encore défini.
Donc, on se redirige dans la classe.
On va définir "decrement", sauf que cette fois, on veut que le count retire 1.
On sauvegarde.
Il a reconnu qu'un test était lié à cette méthode.
Le bouton est rouge, à côté.
On clique. Notre méthode est verte.
Donc, si on clique notre classe de test,
les trois tests ont été lancés et les trois sont passés.
C'est le moment de sauvegarder votre image.
Dans cette vidéo, on a vu comment créer une classe de test,
comment créer des tests.
Une mentalité intéressante dans un milieu comme Pharo,
c'est une mentalité de Test Driven Development
qui permet de penser au comportement que votre objet va avoir,
d'écrire le test,
et ensuite d'écrire les méthodes qui correspondent au test
jusqu'à ce qu'il devienne vert.