Depurar el código
Ahora que tenemos Apex Replay Debugger configurado, vamos a completar algunas pruebas y tareas de depuración para arreglar parte de un código Apex.
Implementar metadatos en la organización
- En Visual Studio Code, haga clic con el botón derecho en la carpeta
classesy seleccione SFDX: Deploy Source To Org (SFDX: Implementar fuente en organización).

Ejecutar pruebas de Apex
- En Visual Studio Code, haga clic en el menú View (Ver) y seleccione Command Palette... (Paleta de comandos...). . También puede usar el acceso directo del teclado Ctrl+Mayús+P (en Windows o Linux) o Comando+Mayús+P (en macOS) para abrir la paleta de comandos.
- Escriba
apex testen el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
- Seleccione AccountServiceTest.

- Fíjese en el resultado de las pruebas en el panel Output (Resultado). ¡Vaya, las pruebas de Apex han fallado! 😯

En el mensaje de error se indica que se ha asignado un valor erróneo al campo de teletipo de bolsa de la cuenta. Vamos a definir un punto de comprobación en el código, volver a ejecutar las pruebas para recopilar un registro de depuración y volver a reproducir el registro de depuración para buscar el error en el código 🐞.
Definir puntos de interrupción y puntos de comprobación
Durante la depuración, un punto de interrupción indica al programa en ejecución que se detenga en un número de línea específico para que el desarrollador pueda inspeccionar los valores de las variables en ese momento concreto. Los puntos de comprobación, una función especial para depurar código Apex, son un tipo de punto de interrupción que proporciona más información mediante la captura de la memoria de la máquina virtual. Puede definir todos los puntos de interrupción que quiera, pero solo puede definir cinco puntos de comprobación a la vez. En comparación con los puntos de interrupción, los de comprobación ofrecen más información sobre todas las variables locales, variables estáticas y variables de contexto de desencadenadores.
Utilice los comandos Debug: Toggle Breakpoint (Depurar: activar punto de interrupción) y SFDX: Toggle Checkpoint (SFDX: Activar punto de comprobación) para activar y desactivar puntos de interrupción y puntos de comprobación, respectivamente. Los puntos de interrupción y comprobación muestran un indicador junto al número de línea para que el usuario sepa que se han definido. Para distinguir un punto de interrupción de uno de comprobación, los de interrupción aparecen como un punto rojo sólido y los de comprobación como un círculo rojo con una línea en el centro.
- En Visual Studio Code, abra el archivo
AccountService.cls.
- Defina un punto de interrupción a la izquierda del número de línea con el texto
Account newAcct = new Account(.

- Centre el cursor en la línea con la declaración
return newAcct;

- Abra Command Palette (Paleta de comandos).
- Escriba
sfdx checkpointen el cuadro de búsqueda y seleccione SFDX: Toggle Checkpoint (SFDX: Activar punto de comprobación).

Debería ver un indicador junto al número de línea donde confirme que se ha establecido el punto de comprobación.

- Abra Command Palette (Paleta de comandos) y escriba
sfdx checkpointen el cuadro de búsqueda. Seleccione SFDX: Update Checkpoints in Org (SFDX: Actualizar puntos de comprobación de la organización). Debe indicar a Salesforce cuáles son los puntos de comprobación para que se recopilen capturas de la memoria de la máquina virtual a medida que se ejecute el código Apex. Si modifica el código Apex o activa y desactiva puntos de comprobación, vuelva a ejecutar este comando para sincronizarlo.

Ejecutar pruebas de Apex y obtener registros de depuración
Ahora que tenemos los puntos de interrupción y comprobación definidos, es hora de ejecutar las pruebas de Apex para generar un registro de depuración listo para reproducir.
- En Visual Studio Code, haga clic en el menú View (Ver) y seleccione Command Palette... (Paleta de comandos...). . También puede usar el acceso directo del teclado Ctrl+Mayús+P (en Windows o Linux) o Comando+Mayús+P (en macOS) para abrir la paleta de comandos.
- Escriba
sfdx replayen el cuadro de búsqueda y seleccione SFDX: Turn On Apex Debug Log for Replay Debugger (SFDX: Activar el registro de depuración de Apex para Replay Debugger). De esta forma, se crea un indicador de rastreo para generar registros de depuración listos para reproducir durante 30 minutos. Puede cambiar la duración en Setup (Configuración) en la página Debug Logs (Registros de depuración).

- Abra Command Palette (Paleta de comandos) y escriba
apex testen el cuadro de búsqueda. Luego, seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).

- Seleccione AccountServiceTest.

- No hemos modificado nuestro código Apex, así que lo más probable es que vuelva a fallar. Lo que ha cambiado es que ahora tenemos un registro de depuración con Replay activado y puntos de comprobación para ayudarnos a encontrar y solucionar el error 🐞.

- Abra Command Palette (Paleta de comandos) y escriba
sfdx geten el cuadro de búsqueda. Seleccione SFDX: Get Apex Debug Logs... (SFDX: Obtener registros de depuración de Apex...). . Después de unos segundos, se le pedirá que seleccione un registro de depuración para descargarlo.

- Elija el registro de depuración asociado con las pruebas de Apex recientes (suele ser la primera entrada de la lista). Después de unos segundos, se abre el registro de depuración descargado en Visual Studio Code.

Volver a reproducir un registro de depuración de Apex
En este paso, vamos a reproducir el registro de depuración que acaba de descargar. No obstante, el registro de depuración que va a reproducir podría haber sido generado por otro desarrollador de su equipo que lo ha compartido con usted.
- En Visual Studio Code, abra el registro de depuración descargado en el paso anterior, si aún no lo ha hecho. En la carpeta
.sfdx/tools/debug/logsencontrará el resto de registros de depuración que haya descargado con Visual Studio Code.

- Haga clic con el botón derecho en cualquier línea del registro de depuración y seleccione SFDX: Launch Apex Replay Debugger with Current File (SFDX: Iniciar Apex Replay Debugger con el archivo actual). Después de unos segundos, se abre la barra lateral Debug (Depurar) en Visual Studio Code, lista para que empiece a analizar el código.

- Haga clic en
en la barra de herramientas de depuración para seguir con el primer punto de interrupción. Si establece varios puntos de interrupción, siga haciendo clic
hasta que el depurador llegue al punto de comprobación de la declaración return newAcct;de AccountService.cls.

- Apex Replay Debugger se detiene en la línea con la declaración
return newAcct;en AccountService.cls, donde definió el paso de comprobación en el paso anterior. En la barra lateral Debug (Depurar) aparecen los valores actuales de las variables dentro del alcance. Confirmamos que el argumentotickerSymbolenviado al métodocreateAccounttiene el valor esperado "CRM". De esta forma, sabemos que nuestro código está enviando el valor correcto al método. Por ahora, todo bien. 🙂

- En la barra lateral Debug (Depurar), expanda la variable newAcct y observe que el valor de la propiedad
TickerSymbol"SFDC" no coincide con el valor del argumentotickerSymbol"CRM" enviado al métodocreateAccount. Interesante. 🤔

- Al inspeccionar el código de AccountService.cls observamos que hay un error, porque el código está asignando el argumento incorrecto:
TickerSymbol = accountNumber. ¡Hemos encontrado el error! 🐞
- Haga clic en
en la barra de herramientas de depuración para finalizar la sesión de depuración.
Implementar metadatos corregidos en la organización
- Corrija el código en AccountService.cls para asignar el argumento
tickerSymbolal campoTickerSymbol.TickerSymbol = tickerSymbol
- Guarde el archivo.
- Haga clic con el botón derecho en cualquier línea del archivo y seleccione SFDX: Deploy This Source to Org (SFDX: Implementar este código fuente en la organización).
Ejecutar pruebas de Apex para verificar que se han solucionado errores
Con el código corregido ya implementado, es hora de ejecutar las pruebas de Apex y comprobar si se ha solucionado.
- Abra Command Palette (Paleta de comandos).
- Escriba
apex testen el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).

- Seleccione AccountServiceTest.

- Fíjese en el resultado de las pruebas en el panel Output (Resultado). ¡Viva! Las pruebas de Apex se han superado. 🥳

¡Hemos acabado! Ha desarrollado, probado y depurado código Apex con Apex Replay Debugger y Salesforce Extensions for Visual Studio Code.
Haga clic en Verificar paso para confirmar la sesión de depuración con su organización de prácticas y recoger la insignia.
Recursos
- Sitio externo: Apex Replay Debugger for Visual Studio Code (Apex Replay Debugger para Visual Studio Code)
- Vídeo: YouTube: Banish the Bugs with the Apex Replay Debugger
- Vídeo: YouTube: Salesforce Development with Visual Studio Code (Desarrollo de Salesforce con Visual Studio Code)
- Vídeo: YouTube: Be An Efficient Salesforce Developer with VS Code (Ser un desarrollador de Salesforce eficiente con VS Code)
- Guía del desarrollador de Apex: Debugging Apex (Depuración de código Apex)
- Ayuda: Set Up Debug Logging (Configuración de registros de depuración)
- Sitio externo: Debugging in Visual Studio Code
