Débogage de votre code
Maintenant qu’Apex Replay Debugger est configuré, effectuons des tests et des débogages pour corriger le code Apex.
Déploiement des métadonnées dans l’organisation
- Dans Visual Studio Code, cliquez avec le bouton droit de la souris sur le dossier
classes
, puis choisissez SFDX: Deploy Source to Org (SFDX : déployer la source dans l’organisation).
Exécuter des tests Apex
- Dans Visual Studio Code, cliquez sur le menu View (Afficher) et choisissez Command Palette… (Palette de commandes). Vous pouvez également ouvrir la palette de commandes à l’aide du raccourci clavier Ctrl+Shift+P (Windows ou Linux) ou Cmd+Shift+P (macOS).
- Saisissez
apex test
(test apex) dans la zone de recherche, puis choisissez SFDX: Run Apex Tests (Exécuter des tests Apex).
- Choisissez AccountServiceTest.
- Notez le résultat du test affiché dans le panneau Output (Sortie). Le test Apex a échoué. 😯
Le message d’erreur indique qu’une valeur incorrecte a été attribuée au champ de cote boursière du compte. Nous allons définir un point de contrôle dans le code, réexécuter le test pour collecter un journal de débogage et relire le journal de débogage pour identifier le bogue dans le code 🐞.
Définition de points de rupture et de contrôle
Lors du débogage, un point de rupture demande au programme en cours d’exécution de s’interrompre au niveau d’un numéro de ligne spécifique afin que le développeur puisse inspecter les valeurs des variables à ce moment-là. Les points de contrôle sont une fonctionnalité spéciale pour le débogage du code Apex. Il s’agit d’un type de point de rupture qui fournit plus d’informations en capturant des décharges de mémoire. Vous pouvez définir autant de points de rupture que vous le souhaitez, mais vous ne pouvez définir que cinq points de contrôle à la fois. Par rapport aux points de rupture, les points de contrôle fournissent des informations plus riches pour toutes les variables locales, statiques et contextuelles de déclenchement.
Utilisez les commandes Debug: Toggle Breakpoint (Déboguer : basculer le point de rupture) et SFDX: Toggle Checkpoint (SFDX : basculer le point de contrôle) pour activer et désactiver les points de rupture et les points de contrôle, respectivement. Un indicateur à côté des numéros de ligne vous informe de la définition de points de rupture et de contrôle. Pour les distinguer, il faut savoir que les points de rupture sont indiqués par un point rouge plein, tandis que les points de contrôle sont indiqués par un cercle rouge avec une ligne au centre.
- Dans Visual Studio Code, ouvrez le fichier
AccountService.cls
.
- Définissez un point de rupture en cliquant à gauche du numéro d’une ligne avec la variable
Account newAcct = new Account(
.
- Placez votre curseur sur la ligne avec l’instruction
return newAcct;
.
- Ouvrez la palette de commandes.
- Saisissez
sfdx checkpoint
(point de contrôle sfdx) dans la zone de recherche, puis choisissez SFDX: Toggle Checkpoint (SFDX : basculer le point de contrôle).
Un indicateur doit s’afficher à côté du numéro de ligne pour vous informer que le point de contrôle a été défini.
- Ouvrez la palette de commandes et saisissez
sfdx checkpoint
(point de contrôle sfdx) dans la zone de recherche, puis choisissez SFDX: Update Checkpoints in Org (SFDX : mettre à jour des points de contrôle dans l’organisation). Vous devez informer Salesforce de vos points de contrôle afin que les décharges de mémoire soient collectées lors de l’exécution de votre code Apex. Si vous modifiez votre code Apex ou activez/désactivez les points de contrôle, exécutez à nouveau cette commande pour assurer la synchronisation.
Exécution de tests Apex et obtention de journaux de débogage
Une fois que les points de rupture et de contrôle sont définis, il est temps d’exécuter de nouveau le test Apex pour générer un journal de débogage compatible avec la relecture.
- Dans Visual Studio Code, cliquez sur le menu View (Afficher) et choisissez Command Palette… (Palette de commandes). Vous pouvez également ouvrir la palette de commandes à l’aide du raccourci clavier Ctrl+Shift+P (Windows ou Linux) ou Cmd+Shift+P (macOS).
- Saisissez
sfdx replay
(relecture sfdx) dans la zone de recherche, puis choisissez SFDX: Turn On Apex Debug Log for Replay Debugger (SFDX : activer le journal de débogage Apex pour Replay Debugger. Cette action crée un indicateur de trace permettant de générer des journaux de débogage compatibles avec la relecture pendant 30 minutes. Vous pouvez modifier la durée dans Setup (Configuration) sur la page Debug Logs (Journaux de débogage).
- Ouvrez la palette de commandes et saisissez
apex test
(test apex) dans la zone de recherche, puis choisissez SFDX: Run Apex Tests (Exécuter des tests Apex).
- Choisissez AccountServiceTest.
- Comme nous n’avons pas modifié le code Apex, nous devons nous attendre à ce que le test échoue à nouveau. Ce qui a changé, c’est que nous disposons désormais d’un journal de débogage compatible avec la relecture et de points de contrôle pour nous aider à identifier et à corriger le bogue 🐞.
- Ouvrez la palette de commandes et saisissez
sfdx get
(obtenir sfdx) dans la zone de recherche, puis choisissez SFDX: Get Apex Debug Logs… (SFDX : obtenir des journaux de débogage Apex). Au bout de quelques secondes, vous êtes invité à sélectionner un journal de débogage à télécharger.
- Choisissez le journal de débogage associé à l’exécution récente du test Apex. Il s’agit généralement de la première entrée de la liste. Au bout de quelques secondes, Visual Studio Code ouvre le journal de débogage téléchargé.
Relecture d’un journal de débogage Apex
Lors de cette étape, vous relisez le journal de débogage que vous avez récemment téléchargé. Cependant, un autre développeur de votre équipe aurait facilement pu générer le journal de débogage que vous relisez et vous le transmettre.
- Dans Visual Studio Code, ouvrez le journal de débogage téléchargé à l’étape précédente, s’il n’est pas déjà ouvert. Les autres journaux de débogage téléchargés avec Visual Studio Code sont disponibles dans le dossier
.sfdx/tools/debug/logs
.
- Cliquez avec le bouton droit de la souris sur n’importe quelle ligne du journal de débogage, puis choisissez SFDX: Launch Apex Replay Debugger with Current File (SFDX : lancer Apex Replay Debugger avec le fichier actuel). Au bout de quelques secondes, Visual Studio Code ouvre la barre latérale Debug (Déboguer) qui vous permet de commencer immédiatement à parcourir le code.
- Cliquez sur dans la barre d’outils Debug (Déboguer) pour continuer jusqu’au premier point de rupture. Si vous définissez plusieurs points de rupture, continuez à cliquer sur jusqu’à ce que le débogueur arrive au point de contrôle de l’instruction
return newAcct;
dans AccountService.cls.
- Apex Replay Debugger s’arrête sur la ligne avec l’instruction
return newAcct;
du fichier AccountService.cls, où vous avez défini le point de contrôle lors d’une étape précédente. La barre latérale Debug (Déboguer) affiche les valeurs actuelles des variables concernées. Nous vérifions que l’argumenttickerSymbol
transmis à la méthodecreateAccount
a la valeur « CRM » prévue. Nous savons donc que le code transmet la valeur appropriée à la méthode. Jusqu’ici, tout va bien. 🙂
- Dans la barre latérale Debug (Déboguer), développez la variable newAcct et notez que la valeur « SFDC » de la propriété
TickerSymbol
ne correspond pas à la valeur « CRM » de l’argumenttickerSymbol
transmise à la méthodecreateAccount
. Intéressant. 🤔
- En inspectant le code du fichier AccountService.cls, nous constatons qu’il y a une faute de frappe. Le code attribue le mauvais argument :
TickerSymbol = accountNumber
. Nous avons trouvé le bogue ! 🐞
- Cliquez sur dans la barre d’outils Debug (Déboguer) pour mettre fin à la session de débogage.
Déploiement de métadonnées corrigées dans l’organisation
- Corrigez le code dans le fichier AccountService.cls de manière à attribuer l’argument
tickerSymbol
au champTickerSymbol
.TickerSymbol = tickerSymbol
- Enregistrez le fichier.
- Cliquez avec le bouton droit de la souris sur n’importe quelle ligne du fichier, puis choisissez SFDX: Deploy This Source to Org (SFDX : déployer cette source dans l’organisation).
Exécution de tests Apex pour vérifier un correctif
Une fois que vous avez déployé le code mis à jour, il est temps d’exécuter à nouveau le test Apex pour vérifier le correctif.
- Ouvrez la palette de commandes.
- Saisissez
apex test
(test apex) dans la zone de recherche, puis choisissez SFDX: Run Apex Tests (Exécuter des tests Apex).
- Choisissez AccountServiceTest.
- Notez le résultat du test affiché dans le panneau Output (Sortie). Bravo, le test Apex est réussi ! 🥳
Ça y est, vous avez terminé. Vous venez de développer, tester et déboguer du code Apex à l’aide d’Apex Replay Debugger et de Salesforce Extensions pour Visual Studio Code.
Cliquez sur Verify Step (Vérifier l’étape) pour confirmer la réalisation de la session de débogage auprès de votre organisation d’exercice et obtenir votre badge.
Ressources
- Site externe : Apex Replay Debugger pour Visual Studio Code
- Vidéo : YouTube : Fini les bogues grâce à Apex Replay Debugger
- Vidéo : YouTube : Développement Salesforce avec Visual Studio Code
- Vidéo : YouTube : Soyez un développeur Salesforce efficace avec VS Code
- Guide du développeur Apex : Déboguer Apex
- Aide : Configuration de la consignation du débogage
- Site externe : Débogage dans Visual Studio Code.