Probar servicios (Obsoleto)
Este es un enfoque en desuso para probar servicios. Para nuevos servicios, por favor consulte Testing Services (Well-Known-Component).
Los servicios DEBERÍAN probarse principalmente usando pruebas de API, es decir, un conjunto de pruebas que ejercitan el código del servicio a través de su API poniendo el servicio en funcionamiento, con sus dependencias externas siendo simuladas (bases de datos y APIs). Prueba unitaria DEBERÍA incluirse en los casos donde se encuentren secciones utilitarias de código con un gran número de casos a ejercitar o código no eficiente, lo que hace imposible o difícil probar con pruebas de API. La razón es que, debido a nuestra arquitectura de microservicios, que reduce las responsabilidades y por tanto la cantidad de código a probar, la lógica de los servicios es simple, haciendo que las pruebas de API sean la opción con mejor tiempo por valor al asegurar que los servicios funcionan correctamente.
Stack de pruebas
Los servicios DEBEN ser probados usando Jest como el framework de pruebas principal con supertest como el framework para levantar el servidor y probarlo.
Estructura de directorios
Como los servicios PUEDEN tener tanto pruebas de API como pruebas unitarias, habrá más de un lugar donde irán las pruebas:
Las pruebas unitarias DEBEN ir junto al archivo o módulo que están probando, con el mismo nombre, pero con la extensión
spec.tsen lugar dets.Las pruebas de API ejercitarán el código a lo largo del servicio, por lo que DEBEN colocarse en un
directorio de prueba, en la ruta raíz. Los archivos serán nombrados como el recurso del servicio que estarán probando, es decir, si las pruebas de API estarán probando el recursobooks, usualmente bajo/books, el nombre del archivo DEBE serbooks.spec.tsy DEBE colocarse en eldirectorio de pruebadirectorio.
Qué probar
Middlewares aplicados a la ruta (auth, etc.), para asegurar que la ruta funciona como se espera.
La lógica de los controladores, para asegurar que la ruta hace lo que esperamos que haga.
Pruebas de API para servicios
Como se mencionó antes, las pruebas de API se harán usando Jest y supertest.
Para ilustrar cómo un desarrollador hará pruebas de API, tenemos el siguiente ejemplo:
Encontramos en el ejemplo una ruta con diferentes métodos HTTP, GET y POST. Ambos endpoints se refieren al mismo recurso, books, por lo que un archivo, nombrado books.spec.ts DEBE ser creado bajo el directorio de prueba directorio para contener las pruebas para ellos.
Todas las rutas y los diferentes flujos de ejecución DEBEN ser probados minuciosamente. Estos son los casos que el desarrollador DEBE probar para estos endpoints:
Solicitar todos los libros funciona, respondiendo con un 200 y la lista de todos los libros.
Solicitar todos los libros de un autor dado funciona, respondiendo con un 200 y la lista de todos los libros de ese autor.
Publicar un libro sin autenticación falla, respondiendo con un 401 y un mensaje de error.
Publicar un libro autenticado funciona, respondiendo con un 200 e insertando el libro.
Estos casos definitivamente obtendrán sus its y la expectativa de esos its DEBE contener al menos el estado de respuesta esperado y qué se espera en el cuerpo de la respuesta (si lo hay).
Así es como estas pruebas de endpoints deberían escribirse:
Última actualización