Depurar su código
Ya con el Depurador de reproducción de Apex configurado, realicemos pruebas y depuraciones para arreglar parte del código de Apex.
Implementar metadatos en la organización
- En Visual Studio Code, haga clic derecho en la carpeta
classes
y, luego, seleccione SFDX: Deploy Source To Org (SFDX: Implementar fuente en la organización).
Ejecutar pruebas de Apex
- En Visual Studio Code, haga clic en el menú View (Ver) y, luego seleccione Command Palette… (Paleta de comandos…). De forma alternativa, puede utilizar el acceso directo del teclado Ctrl+Shift+P (Windows o Linux) o Cmd+Shift+P (macOS) para abrir la paleta de comandos.
- Ingrese
apex test
en el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
- Seleccione AccountServiceTest.
- Observe el resultado de las pruebas en el panel Output (Resultado). Oh, vaya. ¡Nuestra prueba de Apex falló! 😯
El mensaje de error indica que se asignó un valor incorrecto en el campo de símbolo del teletipo de la cuenta. Establezcamos un punto de comprobación en el código, volvamos a realizar la prueba para recopilar un registro de depuración y, luego, ejecutemos nuevamente este registro para buscar el error en nuestro código 🐞.
Establecer puntos de interrupción y de comprobación
Al momento de realizar depuraciones, un punto de interrupción indica al programa en ejecución que realice una pausa en un número de línea específico para que el desarrollador pueda inspeccionar los valores de las variables en dicho momento. Los puntos de comprobación, una función especial para depurar código de Apex, son un tipo de punto de interrupción que proporciona más información mediante la captura de volcados de pila. Puede establecer tantos puntos de interrupción como desee, pero solo puede establecer hasta cinco puntos de comprobación a la vez. En comparación con los puntos de interrupción, los puntos de comprobación proporcionan información más detallada para todas las variables locales, las variables estáticas y las variables de contexto de los desencadenadores.
Utilice los comandos Debug: Toggle Breakpoint (Depurar: Alternar punto de interrupción) y SFDX: Toggle Checkpoint (SFDX: Alternar punto de comprobación) para activar o desactivar los puntos de interrupción y de comprobación, respectivamente. Los puntos de interrupción y de comprobación muestran un indicador junto al número de línea para demostrar que se han configurado. Para distinguir un punto de interrupción de uno de comprobación, los de interrupción se muestran como un punto en color rojo sólido y los de comprobación se muestran como un círculo rojo con una línea que atraviesa el centro.
- En Visual Studio Code, abra el archivo
AccountService.cls
.
- Para establecer un punto de interrupción, haga clic a la izquierda del número de la línea que contiene
Account newAcct = new Account(
.
- Coloque el cursor en la línea con la declaración
return newAcct;
.
- Abra la paleta de comandos.
- Ingrese
sfdx checkpoint
en el cuadro de búsqueda y seleccione SFDX: Toggle Checkpoint (SFDX: Alternar punto de comprobación).
Debería ver un indicador junto al número de línea que demuestra que se estableció el punto de comprobación.
- Abra la paleta de comandos e ingrese
sfdx checkpoint
en el cuadro de búsqueda y seleccione SFDX: Update Checkpoints in Org (SFDX: Actualizar puntos de comprobación en la organización). Debe informar a Salesforce acerca de sus puntos de comprobación para que se recopilen los volcados de pila a medida que se ejecuta el código de Apex. Si modifica el código de Apex o alterna los puntos de comprobación, vuelva a ejecutar este comando para mantener la sincronización.
Ejecutar pruebas de Apex y obtener registros de depuración
Ahora que establecimos nuestros puntos de interrupción y comprobación, es momento de volver a ejecutar nuestra prueba de Apex para generar un registro de depuración activado mediante la reproducción.
- En Visual Studio Code, haga clic en el menú View (Ver) y, luego seleccione Command Palette… (Paleta de comandos…). De forma alternativa, puede utilizar el acceso directo del teclado Ctrl+Shift+P (Windows o Linux) o Cmd+Shift+P (macOS) para abrir la paleta de comandos.
- Ingrese
sfdx replay
en 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 el Depurador de reproducción). Esta acción creará un indicador de rastreo para generar registros de depuración activados mediante la reproducción durante 30 minutos. Puede modificar la duración en Setup (Configuración) en la página Debug Logs (Registros de depuración).
- Abra la paleta de comandos e ingrese
apex test
en el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
- Seleccione AccountServiceTest.
- No modificamos nuestro código de Apex, por lo que deberíamos esperar que la prueba vuelva a generar un error. Lo que cambió es que ahora contamos con un registro de depuración activado mediante la reproducción y puntos de comprobación para ayudarnos a buscar y solucionar el error 🐞.
- Abra la paleta de comandos e ingrese
sfdx get
en el cuadro de búsqueda y seleccione SFDX: Get Apex Debug Logs… (SFDX: Obtener registros de depuración de Apex…). Luego de unos segundos, se le pedirá que seleccione el registro de depuración que desea descargar.
- Seleccione el registro de depuración asociado con la ejecución de prueba de Apex reciente. Por lo general, es la primera entrada en la lista. Luego de unos segundos, Visual Studio Code abrirá el registro de depuración descargado.
Volver a reproducir un registro de depuración de Apex
En este paso, volverá a reproducir el registro de depuración que descargó recientemente. Sin embargo, otro desarrollador de su equipo podría haber generado y compartido con usted de forma sencilla el registro de depuración que vuelve a reproducir.
- En Visual Studio Code, abra el registro de depuración descargado en el paso anterior, si aún no se encuentra abierto. Puede buscar otros registros de depuración que descargó con Visual Studio Code en la carpeta
.sfdx/tools/debug/logs
.
- Haga clic derecho en cualquier línea del registro de depuración y seleccione SFDX: Launch Apex Replay Debugger with Current File (SFDX: Iniciar el Depurador de reproducción de Apex con el archivo actual). Luego de unos segundos, Visual Studio Code abrirá la barra lateral Debug (Depuración), que estará lista para que comience a realizar acciones en el código.
- Haga clic en
en la barra de herramientas de depuración para continuar al primer punto de interrupción. Si establece varios puntos de interrupción, siga haciendo clic en
hasta que el depurador alcance el punto de comprobación de la declaración
return newAcct;
en AccountService.cls.
- El Depurador de reproducción de Apex se pausa en la línea con la declaración
return newAcct;
en AccountService.cls, en la que estableció el punto de comprobación en un paso anterior. En la barra lateral de depuración, se muestran los valores de las variables actuales incluidos en el ámbito. Confirmamos que el argumentotickerSymbol
que se pasó al métodocreateAccount
tiene el valor esperado “CRM”, por lo que sabemos que nuestro código pasa el valor correcto al método. Hasta ahora, todo bien. 🙂
- En la barra lateral de depuración, expanda la variable newAcct y observe que el valor “SFDC” de la propiedad
TickerSymbol
no coincide con el valor “CRM” del argumentotickerSymbol
que se pasó al métodocreateAccount
. Interesante. 🤔
- Al inspeccionar el código de AccountService.cls, observamos que hay un error de tipografía. El código asigna un argumento incorrecto:
TickerSymbol = accountNumber
. ¡Encontramos el error! 🐞
- Haga clic en
en la barra de herramientas de depuración para finalizar la sesión de depuración.
Implementar metadatos solucionados en la organización
- Corrija el código en AccountService.cls para asignar el argumento
tickerSymbol
al campoTickerSymbol
. - Guarde el archivo.
- Haga clic derecho en cualquier línea del archivo y seleccione SFDX: Deploy This Source to Org (SFDX: Implementar esta fuente en la organización).
Ejecutar pruebas de Apex para verificar la solución
Ahora que ya implementamos el código actualizado, es momento de volver a ejecutar nuestra prueba de Apex para verificar la solución.
- Abra la Paleta de comandos.
- Ingrese
apex test
en el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
- Seleccione AccountServiceTest.
- Observe el resultado de las pruebas en el panel Output (Resultado). ¡Felicitaciones! Se superó la prueba de Apex. 🥳
¡Listo, ya terminó! Acaba de desarrollar, probar y depurar código de Apex mediante el Depurador de reproducción de Apex y extensiones de Salesforce para Visual Studio Code.
Haga clic en Verify Step (Verificar paso) para confirmar la sesión de depuración con su organización de prácticas y obtener su insignia.
Recursos
- Sitio externo: Depurador de reproducción de Apex para Visual Studio Code
- Video: YouTube: Eliminar los errores con el Depurador de reproducción de Apex
- Video: YouTube: Desarrollo de Salesforce con Visual Studio Code
- Video: YouTube: Ser un desarrollador de Salesforce eficiente con VS Code
- Guía del desarrollador de Apex: Depurar Apex
- Ayuda: Configurar los registros de depuración
- Sitio externo: Depuración en Visual Studio Code