Dans cette séance, j'aimerais compléter celle sur le
debugger pour vous montrer comment on peut identifier un bug.
Imaginons que l'on change la définition de decrement
et qu'on se trompe.
Là, je vais faire un ajout au lieu d'une soustraction.
Quand je fais tourner mes tests, j'ai un TestDecrement qui est faux.
Là, je l'exécute, je regarde l'exécution et là je me
rends compte que count effectivement me rend 9 au lieu de me rendre 5.
Donc c'est bien que je dois avoir une erreur parmi ces
expressions, si je considère que le Counter a bien été crée.
Là ce que j'aimerais pouvoir faire, c'est pouvoir
exécuter le code et m'arrêter juste après
que le Counter ait été créé, pour voir quelles sont les
méthodes qui ont un problème.
J'ajoute Self halt, c'est une des manières de proposer un
break point dans Pharo. Je recompile la méthode, je fais
Proceed, le code s'exécute et va s'arrêter sur la méthode halt.
Donc là maintenant je peux faire Over.
Et maintenant, je peux décider soit d'aller à l'intérieur
de la méthode count, ce que je fais par exemple, donc là
je vois que count est nil et Integer vaut 7
comme ici, et donc là je vais pouvoir faire Over.
Là je reviens, j'ai decrement.
Donc, je me dis que je vais aller voir à l'intérieur
parce que ça doit être là qu'est le problème, et là je
vois decrement qui est = à moins 1.
Je le transforme, Over.
Et donc là, je peux faire Proceed.
Quand je fais Proceed il va me rester le debug, que j'enlève,
je fais Proceed et mon test est vert.