Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

Débogage de votre code

Remarque

Remarque

Vous souhaitez apprendre en français ? Commencez le défi dans un Trailhead Playground en français et utilisez les traductions fournies entre crochets pour naviguer. Copiez et collez uniquement les valeurs en anglais, car les validations de défi reposent sur les données en anglais. Si vous ne réussissez pas le défi dans votre organisation en français, nous vous recommandons (1) de définir le paramètre régional sur les États-Unis, (2) de définir la langue sur l’anglais en suivant les instructions ici, puis (3) de cliquer à nouveau sur le bouton « Vérifier le défi ».

Consultez le badge Trailhead dans votre langue pour découvrir comment profiter de l’expérience Trailhead traduite.

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

  1. 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).
Remarque

Si l’option SFDX: Deploy Source to Org (SFDX : déployer la source dans l’organisation) n’est pas disponible, assurez-vous que vous avez autorisé votre Trailhead Playground en tant qu’organisation avec Salesforce CLI, comme indiqué à l’étape précédente.

Exécuter des tests Apex

  1. 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).
  2. Saisissez apex test (test apex) dans la zone de recherche, puis choisissez SFDX: Run Apex Tests (Exécuter des tests Apex).
    Palette de commandes filtrée sur la commande SFDX: Run Apex Tests (Exécuter des tests Apex)
  3. Choisissez AccountServiceTest.
    Classes de test Apex à invoquer à partir de Visual Studio Code
  4. Notez le résultat du test affiché dans le panneau Output (Sortie). Le test Apex a échoué. 😯
    Résultat du test Apex avec un message d’échec dans Visual Studio Code

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.

  1. Dans Visual Studio Code, ouvrez le fichier AccountService.cls.
  2. Définissez un point de rupture en cliquant à gauche du numéro d’une ligne avec la variable Account newAcct = new Account(.
    Point de rupture défini sur une ligne du fichier AccountService.cls dans Visual Studio Code
  3. Placez votre curseur sur la ligne avec l’instruction return newAcct;.
    Curseur placé sur la ligne où ajouter un point de contrôle dans le fichier AccountService.cls dans Visual Studio Code
  4. Ouvrez la palette de commandes.
  5. 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).
    Palette de commandes filtrée sur la commande 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.
    Point de contrôle défini sur une ligne du fichier AccountService.cls dans Visual Studio Code
  6. 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.
    Palette de commandes filtrée sur la commande SFDX: Update Checkpoints (SFDX: mettre à jour des points de contrôle)
Remarque

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. Pour ce projet, vous devez définir au moins le point de contrôle mentionné ci-dessus dans AccountService.cls.

Veillez à générer des journaux de débogage et à les relire avec Apex Replay Debugger rapidement après la mise à jour de vos points de contrôle, car ces derniers expirent au bout de 30 minutes et les décharges de mémoire expirent au bout d’une journée.

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.

  1. 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).
  2. 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).
    Palette de commandes filtrée sur la commande SFDX: Invoke Apex Tests (SFDX : invoquer des tests Apex)
  3. 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).
    Palette de commandes filtrée sur la commande SFDX: Run Apex Tests (Exécuter des tests Apex)
  4. Choisissez AccountServiceTest.
    Classes de test Apex à invoquer à partir de Visual Studio Code
  5. 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 🐞.
    Résultat du test Apex avec un message d’échec dans Visual Studio Code
  6. 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.
    Palette de commandes filtrée sur la commande SFDX: Get Apex Debug Logs (SFDX : obtenir des journaux de débogage Apex)
  7. 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é.
    Journaux de débogage à télécharger

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.

Remarque

Lors de la relecture d’un journal de débogage, assurez-vous que le code source Apex de votre projet Salesforce DX est identique à celui qui a servi à générer le journal de débogage. Sinon, les numéros de ligne et les variables référencées par le débogueur pourraient être source de confusion, et non de découvertes. Vous devez générer le journal de débogage avec le niveau de consignation FINER ou FINEST pour la catégorie de journal Visualforce et le niveau de consignation FINEST pour la catégorie de journal du code Apex.

  1. 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.
    Accès aux journaux de débogage enregistrés
  2. 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.
    Lancement d’Apex Replay Debugger dans Visual Studio Code
  3. Cliquez sur Bouton Continue (Continuer) de la barre d’outils Debug (Déboguer) 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 Bouton Continue (Continuer) de la barre d’outils Debug (Déboguer) jusqu’à ce que le débogueur arrive au point de contrôle de l’instruction return newAcct; dans AccountService.cls.
    Session de débogage démarrée dans Visual Studio Code
  4. 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’argument tickerSymbol transmis à la méthode createAccount 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. 🙂
    Session de débogage interrompue au niveau d’une ligne du fichier AccountService.cls dans Visual Studio Code
  5. 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’argument tickerSymbol transmise à la méthode createAccount. Intéressant. 🤔
    Session de débogage interrompue au niveau d’une ligne du fichier AccountService.cls dans Visual Studio Code
  6. 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 ! 🐞
  7. Cliquez sur Bouton Stop (Arrêter) de la barre d’outils Debug (Déboguer) 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

  1. Corrigez le code dans le fichier AccountService.cls de manière à attribuer l’argument tickerSymbol au champ TickerSymbol.
    TickerSymbol = tickerSymbol
  2. Enregistrez le fichier.
  3. 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.

  1. Ouvrez la palette de commandes.
  2. Saisissez apex test (test apex) dans la zone de recherche, puis choisissez SFDX: Run Apex Tests (Exécuter des tests Apex).
    Palette de commandes filtrée sur la commande SFDX: Run Apex Tests (Exécuter des tests Apex)
  3. Choisissez AccountServiceTest.
    Classes de test Apex à invoquer à partir de Visual Studio Code
  4. Notez le résultat du test affiché dans le panneau Output (Sortie). Bravo, le test Apex est réussi ! 🥳
    Résultat du test Apex avec un message de réussite dans Visual Studio Code

Ç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

Partagez vos commentaires sur Trailhead dans l'aide Salesforce.

Nous aimerions connaître votre expérience avec Trailhead. Vous pouvez désormais accéder au nouveau formulaire de commentaires à tout moment depuis le site d'aide Salesforce.

En savoir plus Continuer à partager vos commentaires