Depurar seu código
Com o Depurador de reprodução do Apex configurado, vamos fazer uns testes e umas depurações para corrigir o código do Apex.
Deploy Metadata to Org (Implantar fonte na organização)
- No Visual Studio Code, clique com o botão direito do mouse na pasta
classes
e escolha SFDX: Deploy Source to Org (Implantar fonte na organização).
Run Apex Tests (Executar testes do Apex)
- No Visual Studio Code, clique no menu View (Exibir) e selecione Command Palette...(Paleta de comandos...). Como alternativa, você pode usar o atalho de teclado Ctrl+Shift+P (Windows ou Linux) ou Cmd+Shift+P (macOS) para abrir a paleta de comandos.
- Digite
apex test
na caixa de pesquisa e escolha SFDX: Run Apex Tests (Executar testes do Apex).
- Escolha AccountServiceTest.
- Observe o resultado do teste no painel Output (Saída). Ih, nosso teste falhou! 😯
A mensagem de erro indica que foi atribuído um valor errado ao campo de símbolo de ticker da conta. Vamos configurar um ponto de verificação no código, refazer o teste para coletar um log de depuração e reproduzir o log de depuração para encontrar o bug no código 🐞.
Definir pontos de interrupção e pontos de verificação
Na hora de depurar, um ponto de interrupção orienta o programa em execução a pausar em um número de linha específico para que o desenvolvedor possa inspecionar valores de variável naquele momento. Os pontos de verificação, um recurso especial para depurar o código do Apex, são um tipo de ponto de interrupção que traz mais informações pela captura de heap dumps. Você pode definir quantos pontos de verificação quiser, mas só cinco de cada vez. Comparados com os pontos de interrupção, os pontos de verificação oferecem informações mais avançadas para todas as variáveis locais, estáticas e de contexto de acionador.
Use os comandos Debug: Toggle Checkpoint e SFDX: Toggle Checkpoint para ativar e desativar pontos de interrupção e verificação, respectivamente. Os pontos de interrupção e verificação exibem um indicador ao lado do número da linha para mostrar que foram configurados. Para diferenciar um ponto de interrupção de um de verificação, os de interrupção são exibidos como um ponto vermelho e os de verificação, como um círculo vermelho com uma linha atravessando o centro.
- No Visual Studio Code, abra o arquivo
AccountService.cls
.
- Defina um ponto de interrupção clicando à esquerda do número da linha com
Account newAcct = new Account(
.
- Foque seu cursor na linha com a instrução
return newAcct;
.
- Abrir a paleta de comandos.
- Digite
sfdx checkpoint
na caixa de pesquisa e escolha SFDX: Toggle Checkpoint (Ativar/desativar ponto de verificação).
Você deve ver um indicador ao lado do número da linha mostrando que ele foi criado.
- Abra a paleta de comandos e digite
sfdx checkpoint
na caixa de pesquisa. Em seguida, escolha SFDX: Update Checkpoints in Org (Atualizar pontos de verificação na organização). Você precisa indicar seus pontos de verificação ao Salesforce para que os heap dumps sejam coletados à medida que seu código do Apex é executado. Se você modificar seu código do Apex ou ativar/desativar pontos de verificação, execute esse comando novamente para se manter sincronizado.
Run Apex Tests (Executar testes do Apex) e Get Debug Logs (Obter logs de depuração)
Com nossos pontos de interrupção e verificação definidos, é hora de refazer nosso teste do Apex para gerar um log de depuração que possa ser reproduzido.
- No Visual Studio Code, clique no menu View (Exibir) e selecione Command Palette...(Paleta de comandos...). Como alternativa, você pode usar o atalho de teclado Ctrl+Shift+P (Windows ou Linux) ou Cmd+Shift+P (macOS) para abrir a paleta de comandos.
- Digite
sfdx replay
na caixa de pesquisa e escolha SFDX: Turn on Apex Debug Log for Replay Debugger (Ativar log de depuração para o depurador de reprodução). Isso cria um sinalizador de rastreamento para gerar logs de depuração reproduzíveis por 30 minutos. Você pode mudar a duração em Setup (Configuração) na página Debug Logs (Logs de depuração).
- Abra a paleta de comandos e digite
apex test
na caixa de pesquisa. Em seguida, escolha SFDX: Run Apex Tests (Executar testes do Apex).
- Escolha AccountServiceTest.
- Não mudamos nosso código do Apex, ou seja, é esperado que o teste falhe novamente. O que mudou foi que agora temos um log de depuração que pode ser reproduzido e pontos de verificação para nos ajudar a encontrar e a corrigir o bug 🐞.
- Abra a paleta de comandos e digite
sfdx get
na caixa de pesquisa. Em seguida, escolha SFDX: Get Apex Debug Logs...(Obter logs de depuração do Apex...). Depois de alguns segundos, você receberá um pedido para escolher um log de depuração para download.
- Escolha o log de depuração associado ao teste do Apex recente; normalmente, é a primeira ocorrência da lista. Depois de alguns segundos, o Visual Studio Code abre o log de depuração baixado.
Replay an Apex Debug Log (Reproduzir um log de depuração do Apex)
Nesta etapa, você reproduz o log de depuração baixado recentemente. Mas o log de depuração que você reproduz poderia ter sido gerado e compartilhado com você facilmente por outro desenvolvedor da equipe.
- No Visual Studio Code, abra o log de depuração baixado na etapa anterior, se já não estiver aberto. Você pode encontrar outros logs de depuração baixados com o Visual Studio Code na pasta
.sfdx/tools/debug/logs
.
- Clique com o botão direito do mouse em qualquer linha do log de depuração e escolha SFDX: Launch Apex Replay Debugger with Current File (Iniciar Depurador de reprodução do Apex com arquivo atual). Depois de alguns segundos, o Visual Studio Code abre na barra lateral do Depurador, pronto para você começar a percorrer o código.
- Clique em na barra de ferramentas de depuração a fim de prosseguir para o primeiro ponto de interrupção. Se você definiu vários pontos de interrupção, continue clicando em até o depurador chegar no ponto de verificação da instrução
return newAcct;
em AccountService.cls.
- O Depurador de reprodução do Apex pausa na linha com a instrução
return newAcct;
em AccountService.cls, onde você definiu o ponto de verificação em uma etapa anterior. A barra lateral de depuração exibe os valores de variável atuais no escopo. Confirmamos que o argumentotickerSymbol
transmitido ao métodocreateAccount
tem o valor esperado “CRM”, ou seja, sabemos que nosso código está transmitindo o valor correto ao método. Por enquanto, tudo bem. 🙂
- Na barra lateral de depuração, expanda a variável newAcct e observe que o valor “SFDC” da propriedade
TickerSymbol
não corresponde ao valor “CRM” do argumentotickerSymbol
transmitido ao métodocreateAccount
. Interessante. 🤔
- Na inspeção do código de AccountService.cls, vemos que há um erro tipográfico; o código está atribuindo o argumento errado:
TickerSymbol = accountNumber
. Encontramos nosso bug! 🐞
- Clique em na barra de ferramentas de depuração a fim de encerrar a sessão de depuração.
Implantar metadados corrigidos na organização
- Corrija o código em AccountService.cls para atribuir o argumento
tickerSymbol
ao campoTickerSymbol
.TickerSymbol = tickerSymbol
- Salve o arquivo.
- Clique com o botão direito do mouse em qualquer linha do arquivo e escolha SFDX: Deploy This Source to Org (Implantar essa fonte na organização).
Executar testes do Apex para verificar a correção
Com a implantação do nosso código atualizado, é hora de executar novamente nosso teste do Apex para verificar a correção.
- Abra a paleta de comandos.
- Digite
apex test
na caixa de pesquisa e escolha SFDX: Run Apex Tests (Executar testes do Apex).
- Escolha AccountServiceTest.
- Observe o resultado do teste no painel Output (Saída). Oba, fomos aprovados no teste do Apex! 🥳
É isso, fim de jogo! Você acabou de desenvolver, testar e depurar código do Apex usando o Depurador de reprodução do Apex e as Extensões do Salesforce para Visual Studio Code.
Clique em Verify Step (Verificar etapa) para confirmar a sessão de depuração na sua organização prática e receber seu emblema.
Recursos
- Site externo: Depurador de reprodução do Apex para Visual Studio Code
- Vídeo: YouTube: Desapareça com os bugs usando o Depurador de reprodução do Apex
- Vídeo: YouTube: Desenvolvimento de Salesforce com o Visual Studio Code
- Vídeo: YouTube: Seja um desenvolvedor do Salesforce eficiente com VS Code
- Guia do desenvolvedor do Apex: Debugging Apex
- Ajuda: Configurar registro de depuração
- Site externo: Como depurar no Visual Studio Code