Skip to main content
Únase a nosotros en TDX, en San Francisco, o en Salesforce+ los días 5 y 6 de marzo en la conferencia para desarrolladores sobre la era de agentes de IA. Registrarse ahora.

Depurar el código

Nota

Nota

¿Su idioma de aprendizaje es español? Comience el reto en un Trailhead Playground en español y utilice las traducciones proporcionadas entre paréntesis para navegar. Copie y pegue solo los valores en inglés, ya que las validaciones del reto se basan en los datos en inglés. Si no aprueba el reto en su organización en español, le recomendamos que (1) cambie la configuración regional a Estados Unidos, (2) cambie el idioma a inglés, siga las instrucciones descritas aquí y, a continuación, (3) vuelva a hacer clic en el botón Check Challenge (Comprobar el reto).

Consulte la insignia Trailhead en su idioma para obtener más información sobre cómo aprovechar la experiencia de Trailhead en otros idiomas.

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

  1. En Visual Studio Code, haga clic con el botón derecho en la carpeta classes y seleccione SFDX: Deploy Source to Org (SFDX: Implementar código fuente en la organización).
Nota

Si la opción SFDX: Deploy Source to Org (SFDX: Implementar código fuente en la organización) no está disponible, asegúrese de que ha autorizado su Trailhead Playground como organización con Salesforce CLI según se indica en el paso anterior.

Ejecutar pruebas de Apex

  1. En Visual Studio Code, haga clic en el menú View (Ver) y luego 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.
  2. Escriba apex test (pruebas de Apex) en el cuadro de búsqueda y luego seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
  3. Seleccione AccountServiceTest.
    Clases de pruebas de Apex que se pueden invocar desde Visual Studio Code
  4. Fíjese en el resultado de las pruebas en el panel Output (Resultado). Vaya, las pruebas de Apex han generado errores 😯
    Resultado de las pruebas de Apex donde se ve un mensaje de error en Visual Studio Code

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 obtener un registro de depuración y reproducir el registro de depuración para encontrar el error 🐞.

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.

  1. En Visual Studio Code, abra el archivo AccountService.cls.
  2. Defina un punto de interrupción haciendo clic en el lado izquierdo del número de línea con el código Account newAcct = new Account(.
    Punto de interrupción definido en una línea de AccountService.cls en Visual Studio Code
  3. Deje el cursor en la línea con la declaración return newAcct;.
    Cursor en la línea donde se va a agregar un punto de comprobación en el archivo AccountService.cls en Visual Studio Code
  4. Abra Command Palette (Paleta de comandos).
  5. Escriba sfdx checkpoint en el cuadro de búsqueda y seleccione SFDX: Toggle Checkpoint (SFDX: Activar/desactivar punto de comprobación).
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Comando Toggle Checkpoint (Activar/desactivar punto de comprobación)
    Verá un indicador junto al número de línea donde se ve que se ha definido el punto de comprobación.
    Punto de comprobación definido en una línea de AccountService.cls en Visual Studio Code
  6. Abra Command Palette (Paleta de comandos), escriba sfdx checkpoint en el cuadro de búsqueda y 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.
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Update Checkpoints (SFDX: Actualizar puntos de comprobación)
Nota

Puede definir todos los puntos de interrupción que quiera, pero solo puede definir cinco puntos de comprobación a la vez. Para este proyecto, debe definir al menos el punto de comprobación mencionado anteriormente en AccountService.cls.

Asegúrese de generar registros de depuración y reproducirlos en Apex Replay Debugger justo después de actualizar los puntos de comprobación, ya que estos caducan después de 30 minutos y las capturas de la memoria virtual caducan el día después.

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.

  1. En Visual Studio Code, haga clic en el menú View (Ver) y luego 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.
  2. Escriba 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 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).
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Invoke Apex Tests (SFDX: Invocar pruebas de Apex).
  3. Abra Command Palette (Paleta de comandos), escriba apex test (pruebas de Apex) en el cuadro de búsqueda y seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
  4. Seleccione AccountServiceTest.
    Clases de pruebas de Apex que se pueden invocar desde Visual Studio Code
  5. 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 listo para reproducir y puntos de comprobación que nos permiten encontrar y solucionar el error 🐞.
    Resultado de las pruebas de Apex donde se ve un mensaje de error en Visual Studio Code
  6. Abra Command Palette (Paleta de comandos), escriba sfdx get en el cuadro de búsqueda y 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.
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Get Apex Debug Logs (SFDX: Obtener registros de depuración de Apex).
  7. 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.
    Registros de depuración para descargar

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.

Nota

Al reproducir un registro de depuración, asegúrese de que su proyecto de Salesforce DX contenga el mismo código fuente de Apex con el que se generó el registro de depuración. De lo contrario, los números de línea y las variables a las que se hace referencia en Replay Debugger podrían generar confusión en lugar de ser útiles. El registro de depuración se debe generar con un nivel de registro FINER o FINEST como categoría de registro para Visualforce y un nivel de registro FINEST como categoría de registro para código Apex.

  1. 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/logs, encontrará otros registros de depuración que haya descargado con Visual Studio Code.
    Navegación por los registros de depuración guardados
  2. 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.
    Apertura de Apex Replay Debugger en Visual Studio Code
  3. Haga clic en Botón Continue (Continuar) en la barra de herramientas de depuración en la barra de herramientas de depuración para seguir con el primer punto de interrupción. Si ha establecido varios puntos, siga haciendo clic en Botón Continue (Continuar) en la barra de herramientas de depuración hasta que el depurador llegue al punto de comprobación de la declaración return newAcct; en AccountService.cls.
    Sesión de depuración iniciada en Visual Studio Code
  4. Apex Replay Debugger se detiene en la línea con la declaración return newAcct; en AccountService.cls, donde ha establecido el punto de comprobación del paso anterior. En la barra lateral Debug (Depurar) aparece los valores actuales de las variables dentro del alcance. Confirmamos que el argumento tickerSymbol enviado al método createAccount contiene el valor esperado "CRM", así que sabemos que nuestro código está enviando el valor adecuado al método. Por ahora, todo bien. 🙂
    Sesión de depuración detenida en la línea AccountService.cls en Visual Studio Code
  5. 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 argumento tickerSymbol "CRM" que se ha enviado al método createAccount. Interesante. 🤔
    Sesión de depuración detenida en la línea AccountService.cls en Visual Studio Code
  6. Al inspeccionar el código de AccountService.cls, vemos un error, ya que el código asigna el argumento incorrecto: TickerSymbol = accountNumber. ¡Hemos detectado el fallo! 🐞
  7. Haga clic en Botón Stop (Detener) en la barra de herramientas de depuración en la barra de herramientas de depuración para finalizar la sesión de depuración.

Implementar metadatos corregidos en la organización

  1. Corrija el código en AccountService.cls para asignar el argumento tickerSymbol al campo TickerSymbol.
    TickerSymbol = tickerSymbol
  2. Guarde el archivo.
  3. Haga clic con el botón derecho en cualquier línea del archivo y seleccione SFDX: Deploy this Source to Org (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.

  1. Abra Command Palette (Paleta de comandos).
  2. Escriba apex test (pruebas de Apex) en el cuadro de búsqueda y luego seleccione SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
    Command Palette (Paleta de comandos) filtrada con el comando SFDX: Run Apex Tests (SFDX: Ejecutar pruebas de Apex).
  3. Seleccione AccountServiceTest.
    Clases de pruebas de Apex que se pueden invocar desde Visual Studio Code
  4. Fíjese en el resultado de las pruebas en el panel Output (Resultado). ¡Bravo, nuestro código Apex ha superado las pruebas! 🥳
    Resultado de las pruebas de Apex donde se ve un mensaje de pruebas correctas en Visual Studio Code

¡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

Verificar paso

+100 puntos

Completará esta/este proyecto en su propia organización de prácticas. Haga clic en Iniciar para empezar a trabajar o haga clic en el nombre de su organización para seleccionar otro diferente.

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios