Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

Depurar seu código

Nota

Nota

Deseja aprender em português (Brasil)? Comece o desafio em um Trailhead Playground de português (Brasil) e use as traduções fornecidas entre parênteses para navegar. Copie e cole somente os valores em inglês porque as validações dos desafios dependem de dados em inglês. Se você não passar no desafio em sua organização de português (Brasil), recomendamos que (1) mude o local para os Estados Unidos, (2) mude o idioma para inglês, seguindo as instruções aqui, e (3) clique novamente no botão “Validar o desafio”.

Consulte o emblema Trailhead no seu idioma para saber mais sobre como aproveitar a experiência de Trailhead em outros idiomas.

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)

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

Se a opção SFDX: Deploy Source to Org estiver indisponível, verifique se você autorizou seu Trailhead Playground como organização com a CLI do Salesforce de acordo com a etapa anterior.

Run Apex Tests (Executar testes do Apex)

  1. 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.
  2. Digite apex test na caixa de pesquisa e escolha SFDX: Run Apex Tests (Executar testes do Apex).
    Paleta de comandos filtrada com o comando SFDX: Run Apex Tests
  3. Escolha AccountServiceTest.
    Classes de teste do Apex a serem invocadas no Visual Studio Code
  4. Observe o resultado do teste no painel Output (Saída). Ih, nosso teste falhou! 😯
    Resultado de teste do Apex mostrando mensagem de falha no Visual Studio Code

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.

  1. No Visual Studio Code, abra o arquivo AccountService.cls.
  2. Defina um ponto de interrupção clicando à esquerda do número da linha com Account newAcct = new Account(.
    Ponto de interrupção ativado em AccountService.cls no Visual Studio Code
  3. Foque seu cursor na linha com a instrução return newAcct;.
    Cursor focado na linha linha onde um ponto de verificação deve ser adicionado no arquivo AccountService.cls no Visual Studio Code
  4. Abrir a paleta de comandos.
  5. Digite sfdx checkpoint na caixa de pesquisa e escolha SFDX: Toggle Checkpoint (Ativar/desativar ponto de verificação).
    Paleta de comandos filtrada com o comando SFDX: Toggle Checkpoint
    Você deve ver um indicador ao lado do número da linha mostrando que ele foi criado.
    Ponto de verificação ativado em AccountService.cls no Visual Studio Code
  6. 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.
    Paleta de comandos filtrada com o comando SFDX: Update Checkpoints
Nota

Você pode definir quantos pontos de verificação quiser, mas só cinco de cada vez. Neste projeto, você precisa definir pelo menos o ponto de verificação mencionado acima em AccountService.cls.

Gere logs de depuração e reproduza-os com o Depurador de reprodução do Apex logo depois de atualizar os pontos de verificação, já que estes expiram após 30 minutos e os dumps de heap expiram após um dia.

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.

  1. 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.
  2. 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).
    Paleta de comandos filtrada com o comando SFDX: Invoke Apex Tests
  3. Abra a paleta de comandos e digite apex test na caixa de pesquisa. Em seguida, escolha SFDX: Run Apex Tests (Executar testes do Apex).
    Paleta de comandos filtrada com o comando SFDX: Run Apex Tests
  4. Escolha AccountServiceTest.
    Classes de teste do Apex a serem invocadas no Visual Studio Code
  5. 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 🐞.
    Resultado de teste do Apex mostrando mensagem de falha no Visual Studio Code
  6. 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.
    Paleta de comandos filtrada com o comando SFDX: Get Apex Debug Logs
  7. 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.
    Logs de depuração para download

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.

Nota

Ao reproduzir um log de depuração, verifique se seu projeto Salesforce DX contém o mesmo código-fonte do Apex que gerou o log de depuração. Do contrário, os números de linha e as variáveis referenciados pelo depurador poderão causar confusão em vez de descobertas. O log de depuração precisa ser gerado com um nível de log FINER (ÓTIMO) ou FINEST (MELHOR) em logs da categoria Visualforce e FINEST (MELHOR) em logs da categoria Código do Apex.

  1. 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.
    Como navegar até os logs de depuração salvos
  2. 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.
    Inicialização do Depurador de reprodução do Apex no Visual Studio Code
  3. Clique em Botão de continuação na barra de ferramentas de depuração 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 Botão de continuação na barra de ferramentas de depuração até o depurador chegar no ponto de verificação da instrução return newAcct; em AccountService.cls.
    Sessão de depuração iniciada no Visual Studio Code
  4. 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 argumento tickerSymbol transmitido ao método createAccount tem o valor esperado “CRM”, ou seja, sabemos que nosso código está transmitindo o valor correto ao método. Por enquanto, tudo bem. 🙂
    Sessão de depuração pausada na linha em AccountService.cls no Visual Studio Code
  5. 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 argumento tickerSymbol transmitido ao método createAccount. Interessante. 🤔
    Sessão de depuração pausada na linha em AccountService.cls no Visual Studio Code
  6. 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! 🐞
  7. Clique em Botão de parar na barra de ferramentas de depuração na barra de ferramentas de depuração a fim de encerrar a sessão de depuração.

Implantar metadados corrigidos na organização

  1. Corrija o código em AccountService.cls para atribuir o argumento tickerSymbol ao campo TickerSymbol.
    TickerSymbol = tickerSymbol
  2. Salve o arquivo.
  3. 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.

  1. Abra a paleta de comandos.
  2. Digite apex test na caixa de pesquisa e escolha SFDX: Run Apex Tests (Executar testes do Apex).
    Paleta de comandos filtrada com o comando SFDX: Run Apex Tests
  3. Escolha AccountServiceTest.
    Classes de teste do Apex a serem invocadas no Visual Studio Code
  4. Observe o resultado do teste no painel Output (Saída). Oba, fomos aprovados no teste do Apex! 🥳
    Resultado de teste do Apex mostrando mensagem de aprovação no Visual Studio Code

É 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

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback