Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Preguntas frecuentes
Tengo una función de Lambda que realiza cálculos y devuelve un resultado sin llamar a ningún otro servicio. ¿Realmente necesito probarlo en la nube?
Sí. Las funciones de Lambda tienen parámetros de configuración que pueden cambiar el resultado de la prueba. Todo el código de la función de Lambda depende del tiempo de espera y de la configuración de la memoria, lo que puede provocar un error en la función si esos ajustes no se configuran correctamente. Las políticas de Lambda también permiten el registro de resultados estándar en Amazon. CloudWatch
¿Cómo pueden ayudar las pruebas en la nube a las pruebas unitarias? Si está en la nube y se conecta a otros recursos, ¿no es una prueba de integración?
Definimos las pruebas unitarias como pruebas que se realizan en componentes de la arquitectura de forma aislada. Esta definición no excluye necesariamente el uso de llamadas a servicios u otras comunicaciones de red.
Muchas aplicaciones sin servidor tienen componentes de la arquitectura que se pueden probar de forma aislada, incluso en la nube. Un ejemplo es una función de Lambda que toma una entrada, la interpreta y envía un mensaje a una cola de SQS. Una prueba unitaria de esta función probablemente comprobaría si los valores de entrada dan como resultado que ciertos valores estén presentes en el mensaje en cola. Considere una prueba que se escribe con el patrón Organizar, Actuar, Afirmar:
-
Organizar: asigne recursos (una cola para recibir mensajes y la función que se está probando).
-
Actuar: llame a la función que se está probando.
-
Afirmar: recupere el mensaje enviado por la función y valide la salida.
Un enfoque de prueba simulada implicaría simular la cola con un objeto simulado en proceso y crear una instancia en proceso de la clase o módulo que contenga el código de la función de Lambda. Durante la fase de afirmación, el mensaje en cola se recuperaría del objeto de la simulación.
En un enfoque basado en la nube, la prueba crearía una cola de SQS con fines de prueba e implementaría la función de Lambda con variables de entorno configuradas para utilizar la cola aislada de SQS como destino de salida. Tras ejecutar la función de Lambda, la prueba recuperaría el mensaje de la cola de SQS.
La prueba basada en la nube ejecutaría el mismo código, afirmaría el mismo comportamiento y validaría la corrección funcional de la aplicación. Sin embargo, tendría la ventaja adicional de poder validar la configuración de la función de Lambda: el rol de IAM, las políticas de IAM y la configuración de memoria y tiempo de espera de la función.