1 00:00:02,090 --> 00:00:04,310 Dans cette séance, j'aimerais compléter celle sur le 2 00:00:04,477 --> 00:00:08,230 debugger pour vous montrer comment on peut identifier un bug. 3 00:00:08,397 --> 00:00:12,440 Imaginons que l'on change la définition de decrement 4 00:00:13,610 --> 00:00:14,350 et qu'on se trompe. 5 00:00:14,660 --> 00:00:17,950 Là, je vais faire un ajout au lieu d'une soustraction. 6 00:00:19,160 --> 00:00:22,000 Quand je fais tourner mes tests, j'ai un TestDecrement qui est faux. 7 00:00:22,157 --> 00:00:26,440 Là, je l'exécute, je regarde l'exécution et là je me 8 00:00:26,607 --> 00:00:30,550 rends compte que count effectivement me rend 9 au lieu de me rendre 5. 9 00:00:30,717 --> 00:00:33,540 Donc c'est bien que je dois avoir une erreur parmi ces 10 00:00:33,707 --> 00:00:36,120 expressions, si je considère que le Counter a bien été crée. 11 00:00:36,690 --> 00:00:38,520 Là ce que j'aimerais pouvoir faire, c'est pouvoir 12 00:00:38,800 --> 00:00:42,930 exécuter le code et m'arrêter juste après 13 00:00:43,630 --> 00:00:46,200 que le Counter ait été créé, pour voir quelles sont les 14 00:00:46,720 --> 00:00:47,840 méthodes qui ont un problème. 15 00:00:48,650 --> 00:00:51,400 J'ajoute Self halt, c'est une des manières de proposer un 16 00:00:51,567 --> 00:00:55,040 break point dans Pharo. Je recompile la méthode, je fais 17 00:00:55,207 --> 00:00:59,630 Proceed, le code s'exécute et va s'arrêter sur la méthode halt. 18 00:01:00,580 --> 00:01:01,710 Donc là maintenant je peux faire Over. 19 00:01:02,370 --> 00:01:04,850 Et maintenant, je peux décider soit d'aller à l'intérieur 20 00:01:05,017 --> 00:01:07,110 de la méthode count, ce que je fais par exemple, donc là 21 00:01:07,277 --> 00:01:09,790 je vois que count est nil et Integer vaut 7 22 00:01:13,500 --> 00:01:17,910 comme ici, et donc là je vais pouvoir faire Over. 23 00:01:20,770 --> 00:01:22,580 Là je reviens, j'ai decrement. 24 00:01:22,747 --> 00:01:25,730 Donc, je me dis que je vais aller voir à l'intérieur 25 00:01:25,897 --> 00:01:27,540 parce que ça doit être là qu'est le problème, et là je 26 00:01:27,707 --> 00:01:29,680 vois decrement qui est = à moins 1. 27 00:01:33,070 --> 00:01:35,680 Je le transforme, Over. 28 00:01:39,170 --> 00:01:41,000 Et donc là, je peux faire Proceed. 29 00:01:42,620 --> 00:01:47,530 Quand je fais Proceed il va me rester le debug, que j'enlève, 30 00:01:47,697 --> 00:01:51,490 je fais Proceed et mon test est vert.