El Framework para pruebas de Salesforce es importante para asegurarnos de que nuestras aplicaciones no rompan la funcionalidad y se ejecuten como se espera.
Luego de leer este post podrás aprender a describir las principales características y funcionalidades del Framework para pruebas de Salesforce, además de, las consideraciones y opciones disponibles para ejecutar pruebas seleccionadas al implementar componentes de Apex.
¿Por que usar el Framework Para Pruebas de Salesforce?
- Para asegurar un desarrollo exitoso a largo plazo y que la aplicación funcione como se espera.
- Además, para garantizar que los cambios y extensiones de una aplicación no interrumpan la funcionalidad.
- Se requiere para implementar una aplicación de Salesforce en el cliente.
Características del Framework Para Pruebas de Salesforce
- Escribir Unit Tests (test unitarios) para clases y triggers de Apex.
- Ejecutar Unit Tests o varias pruebas en ejecución juntas.
- Revisar los resultados de la prueba para ver si tiene éxito o fallan en el Developer Console.
- Generar cobertura(code coverage) para el código cada vez que se ejecuta una prueba.
Requisitos de implementación
- La cobertura general del código en una organización debe ser del 75% para una implementación exitosa.
- Las clases y triggers de Apex deben compilarse correctamente.
- Las clases y métodos de prueba no están incluidas en la cobertura de código requerida.
Unit Tests del Framework Para Pruebas de Salesforce
- Son creadas y ejecutadas para ayudar a facilitar un código sin errores.
- Se puede probar el código en un solo y en varios registros.
- Permite tener un conjunto de pruebas de regresión para volver a ejecutar cada vez que se actualiza el código.
- Test suites (colección de pruebas) pueden ser creados para ejecutar múltiples clases de prueba.
- Se proporcionan herramientas integradas para permitir la ejecución y análisis de pruebas unitarias.
- Incluye ayuda para cargar data de prueba de diferentes fuentes.
- Se ejecutan sin arrojar alguna excepción límite o desconocida.
- El código Apex ejecutado en métodos de prueba está sujeto a límites reguladores.
- La cobertura del código se genera para las clases Apex y se activa cada vez que se ejecuta una prueba.
- Todos los triggers de Apex deben tener al menos 1 línea de cobertura de código.
- Parallel Apex Testing permite ejecutar pruebas unitarias en paralelo y ayuda a acelerar el tiempo de ejecución.
Limitaciones de Unit Test
- No se puede enviar correos electrónicos salientes. El código Apex que envía un mensaje de correo electrónico se ejecuta satisfactoriamente, pero no se envía un email desde la org.
- Los Unit tests no pueden realizar HTTP callouts. Para probar Apex callouts, se pueden usar respuestas simuladas (Mock Responses) que se crean mediante la interfaz HttpCalloutMock.
Ejecución de pruebas seleccionadas
Las pruebas seleccionadas son una opción que permite especificar las únicas clases de prueba a ejecutar.
- Para clarificar la cobertura de algunos códigos Apex.
- La cobertura de código es calculado individualmente por cada clase y trigger, además, es diferente del porcentaje de la cobertura del código general.
- Ejecuta un subconjunto de resultados para realizar pruebas más rápidas.
- Solo es para clases de prueba, no para métodos individuales.
Opciones de prueba con Change Sets
Para deployar un código de Sandbox a Producción podemos usar Change Sets. Sin embargo, cuando lo usamos, hay cuatro opciones de prueba disponibles.
- Default: La opción predeterminada en Production es ejecutar pruebas locales. Por otro lado, en sandbox, no se ejecutan pruebas.
- Run Local Test: Ejecuta todas las pruebas, excepto Managed Package Tests.
- All Tests: Ejecuta todas las pruebas, incluyendo Managed Package Tests.
- Specified Tests: Las clases de prueba a ejecutar se especifican en una lista.
Más Información Acerca de Framework Para Pruebas de Salesforce
- What are Apex Unit Tests?
- What to Test in Apex
- Get Started withi Apex Unit Tests
- Choose Which Tests to Run in a Deployment
- Choose Test Options for Change Sets
- Running a Subset of Tests in a Deployment
- Code Coverage Best Practices
Para aprender más de Salesforce, puedes visitar Plantillas en Lightning Web Component de Salesforce