-Bonjour à tous.
Dans cette vidéo, on va s'intéresser à comment identifier un bug
à l'aide du Debugger.
Dans la vidéo précédente,
on est partis d'un comportement qui était déjà correct
et on a vu comment utiliser le Debugger
pour se promener à l'intérieur de notre flot de méthodes
et comprendre comment ça marche.
Ici, on va tout de suite écrire un bug.
On va dire que notre méthode "decrement"
va ajouter 1 au lieu de soustraire 1 au compteur.
On sauvegarde ça, et si on lance nos tests,
on peut voir que notre test "CounterDecrement"
n'a pas fonctionné.
Donc, si je le réexécute seul, le Debugger va s'ouvrir
et on va pouvoir voir qu'on a obtenu 7 au lieu de 3.
Et si on affiche la valeur de "count" pour notre compteur,
elle vaut 7, et pas 3.
Par contre, comme on a pu faire tout à l'heure,
on était partis du début, on avait pu créer notre compteur,
puis inspecter les différentes méthodes "decrement".
Cette fois, on est arrivés directement
à l'endroit du bug, c'est-à-dire à l'assertion.
On aurait aimé s'arrêter après la création du compteur.
Pour ça, ce qu'il va falloir faire,
c'est écrire un bout de code pour le Debugger : "self halt".
Ça va ouvrir le Debugger à cette étape-là.
On va le lancer tout de suite. On lance le test.
Notre Debugger s'est ouvert avec le message "halt",
donc sur cette méthode-là.
Maintenant, le message surligné, c'est celui-ci.
Donc, on va pouvoir aller s'intéresser aux méthodes d'après.
On peut déjà regarder la valeur du compteur
et voir qu'il est déjà instancié et que "count" devrait valoir 5.
"count" vaut bien 5, c'est correct.
Ce qu'on peut faire, c'est presser "Over".
On est cette fois au-dessus du "decrement",
ce qui doit être le problème,
puisqu'entre la création du compteur et l'assertion,
seule la méthode "decrement" est appelée.
On peut faire "Into",
et on retombe sur le bug qu'on a créé nous-même.
On peut inspecter la valeur de "count" qui vaut 5.
Sauf qu'on veut enlever 1,
donc on peut tout simplement enlever le "+", mettre un "-",
sauvegarder, Cmd+S.
Le Debugger est un environnement de travail, lui aussi.
Si on presse Cmd+S,
ça va modifier la méthode "decrement" aussi dans le code du compteur.
J'ai sauvegardé, je peux presser "Over".
Cette fois-ci, on va s'intéresser au compteur,
et on peut voir que l'instance "count" vaut bien 4,
elle a bien diminué d'1.
C'est le comportement qu'on attendait de notre méthode.
On appuie sur "Over".
On peut se diriger encore une fois ici.
On va voir que "c count", cette fois, vaut bien 3.
Ça devrait être correct, on peut appuyer sur "Proceed".
C'était une explication de comment utiliser le Debugger
en mettant des breakpoints.
On a un warning qui nous dit
que du code de débogage est resté dans la méthode.
On va retomber sur le "halt" qui ne nous intéresse pas,
on va l'enlever directement depuis le Debugger.
Quittez, vous pouvez voir que ça a changé, ici aussi.
On peut exécuter, c'est bien vert.
Pour la méthode "self halt",
vous pouvez aussi faire clic droit, Source code
et ajouter un breakpoint.
Ça va faire un peu la même chose que...
Le breakpoint, vous pouvez aussi cliquer ici pour en placer un.
C'est ce qui avait été placé
quand on avait fait le clic droit, Debug tests.
Ça nous avait placé un breakpoint directement au début de la méthode.
C'est une autre manière de mettre un "self halt", par exemple.
C'était une vidéo
sur comment trouver un bug à l'aide du Debugger de Pharo.