Introducción de la prueba de flujo
Anteriormente, si queríamos probar el flujo, necesitábamos escribir una clase de prueba de Apex para el flujo. Con la versión Summer '22, Salesforce introdujo un marco de prueba para flujos activados por registros para automatizar las pruebas de flujos. Ahora podemos dejar que Salesforce pruebe el flujo, asegurarnos de que los resultados cumplan con las expectativas y resaltar cuando no lo sean. Ahora podemos crear y ejecutar pruebas dentro del propio generador de flujo, de forma declarativa sin escribir ningún código.
Cómo funciona
Establecer detalles de prueba, desencadenante y ruta
Proporciona una etiqueta de prueba de flujo y una descripción de la prueba. Establezca el activador de prueba en Creado/actualizado según el escenario. La ruta de la prueba está configurada para Ejecutar inmediatamente.
Establecer registro de activación inicial/actualizado
Usando la función de búsqueda, podemos buscar el registro para usarlo como plantilla inicial. Tras la selección del registro, los campos se completan a partir del registro seleccionado. La prueba hereda los valores de campo del registro seleccionado. Sin embargo, podemos modificar los valores de estos campos antes de finalizar la prueba. La prueba no está vinculada a este registro pero contiene y utiliza sus valores de campo.
Establecer afirmaciones
La aserción es una forma de comparar el resultado real con el resultado previsto. Si coinciden, entonces la afirmación se evalúa como verdadera. De lo contrario, la afirmación falla. Escriba las siguientes afirmaciones para garantizar que se cumplan los criterios de entrada de registros para el flujo y se logre el resultado esperado.
Ejecutar prueba y ver detalles
Haga clic en el botón "Ver pruebas", seleccione el menú desplegable de la prueba de flujo que queremos ejecutar y seleccione Ejecutar prueba y ver detalles.
La prueba de flujo se ejecuta y resalta el camino que tomó la prueba. Si necesitamos probar el flujo, simplemente podemos ejecutar la prueba. Ya no es necesario configurar los datos de prueba mediante programación. ¡Esto aumenta la eficiencia de las pruebas! Si necesitamos realizar una mejora en este flujo en el futuro, necesitaremos actualizar el registro de prueba asociado en consecuencia.
Beneficios
- Fácil y cómodo de usar: podemos crear registros de prueba a través de la interfaz de usuario y ponerlos a prueba.
- Tiempo y esfuerzo: reduce el tiempo y el esfuerzo necesarios, ya que no necesitamos escribir código, solo crear registros desde la interfaz de usuario y realizar afirmaciones.
- No afectará la cobertura del código existente a nivel de clase: si migramos cualquier funcionalidad del activador al flujo, la lógica subyacente del activador/clase también se limpia manualmente como parte de este ejercicio. Esto no reducirá la cobertura del código de la clase ya que la lógica se elimina por completo.
- Cobertura de la prueba de flujo: el porcentaje de cobertura no se captura en la prueba de flujo como podemos hacerlo a través de la clase Apex. Más bien es capaz de cubrir nodos. Una vez seleccionamos “Ejecutar prueba y ver detalles”. La ruta resaltada en amarillo representará la cobertura real del flujo desde el principio hasta el final del nodo.
Desventaja
- Solo puede crear pruebas de flujo para crear, actualizar o crear/actualizar flujos activados por registros. Aún no se admite la eliminación de flujos activados por registros. – Solo para el escenario de eliminación de registros podemos escribir una clase de prueba
- Puede afectar la cobertura general: dado que la cobertura de prueba general se calcula en función de la cobertura de prueba de todas las clases combinadas (promedio), si migramos cualquier característica que tenga una cobertura de prueba más alta en la clase ápice relevante, podría reducir el porcentaje de cobertura general del código. (Como actualmente solo nos estamos enfocando en migrar el activador relacionado con la cuenta para fluir, solo se ve afectada 1 clase de prueba, por lo que no hay cambios significativos en la cobertura del código Apex).
- Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincrónica. Sin embargo, no tenemos flujo asíncrono en nuestra organización. Estamos creando flujos para cubrir escenarios que se ejecutan sincrónicamente.
Recomendación
- Podemos comenzar a dar pasos para pasar a la prueba de flujo a medida que Salesforce realiza mejoras continuas en el flujo, por lo que en versiones futuras, podemos esperar que la prueba de flujo incluya más mejoras y reduzca las limitaciones.
- Podemos comenzar escribiendo una prueba de flujo para las actualizaciones rápidas de campos (antes) de los flujos de activación de registros.
- Mejorar la cobertura de prueba de las clases que tienen menos cobertura para que podamos usar la prueba de flujo.
Preguntas más frecuentes
¿Cuál es el porcentaje de cobertura para implementar Flow?
En relación con las pruebas de Apex, las pruebas de flujo no se consideran parte de la cobertura de pruebas como en el 75%+ para el despliegue de productos.
¿Brindan cobertura de código como lo hace la clase de prueba? Si no, ¿debemos pensar en eliminar el flujo de la cobertura de prueba?
Sí, cubren resaltando nodo por nodo.
¿Puede confirmar si la prueba de flujo permite ejecutar pruebas masivas?
No, no admite pruebas de registros masivos. En la mayoría de los escenarios relacionados con desencadenantes, hemos creado un registro individual en la clase de prueba y verificamos los escenarios de prueba. Si reemplazamos esos desencadenantes con flujos, no habrá una gran diferencia en los casos de prueba.
¿La prueba de flujo admite la asincronía?
Las pruebas de flujo no admiten rutas de flujo que se ejecuten de forma asincrónica. Sin embargo, no tenemos flujo asíncrono en nuestra organización. Estamos creando flujos para cubrir escenarios que se ejecutan sincrónicamente.
¿Cuál es el rendimiento de las pruebas de flujo en comparación con las clases de prueba?
No veo ninguna documentación oficial, pero creo que la prueba de flujo será más rápida en comparación con la clase de prueba porque cuando ejecutamos una prueba creará una instancia de la clase y llamará a métodos individuales. Podemos ejecutar casos de prueba individuales utilizando una prueba de flujo, pero no es posible ejecutar un solo método individual desde la clase de prueba, lo que lleva mucho tiempo.
Referencia
Consideraciones para probar el flujo
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://www.sfdcamplified.com/use-of-flow-test-vs-test-class-for-flow-in-salesforce/#utm_source=rss&utm_medium=rss&utm_campaign=use-of-flow-test-vs-test-class-for-flow-in-salesforce