Para agregar pruebas unitarias a nuestra API de Express.js con arquitectura hexagonal, primero debemos entender qué es la arquitectura hexagonal y por qué es importante agregar pruebas a nuestra API. La arquitectura hexagonal es un patrón de diseño que separa la lógica de negocio de la lógica de presentación y la lógica de persistencia de datos. Esto permite una mayor flexibilidad y facilidad en el desarrollo y mantenimiento de nuestra API.
Una vez que entendemos la importancia de la arquitectura hexagonal, podemos comenzar a agregar pruebas unitarias a nuestra API. Para hacer esto, necesitamos una combinación de herramientas como Jest, Supertest y Express.js para realizar pruebas de integración y unitarias.
Primero, necesitamos instalar Jest en nuestro proyecto. Para hacer esto, ejecutamos el siguiente comando:
npm install jest --save-dev
Luego, necesitamos instalar Supertest para realizar pruebas de integración. Ejecutamos el siguiente comando:
npm install supertest --save-dev
Después, creamos un archivo de configuración de Jest en la raÃz de nuestro proyecto. Este archivo puede tener la siguiente configuración:
// jest.config.js
module.exports = {
testEnvironment: "node",
testMatch: ["<rootDir>/tests/**/*.test.js"],
};
Luego, creamos un directorio de pruebas en la raÃz de nuestro proyecto. En este directorio, creamos un archivo de prueba para nuestra API. Por ejemplo, api.test.js
. Este archivo puede tener el siguiente contenido:
// api.test.js
const request = require("supertest");
const app = require("../src/app");
describe("API tests", () => {
it("GET /api/users should return a list of users", async () => {
const response = await request(app).get("/api/users");
expect(response.status).toBe(200);
expect(response.body).toHaveProperty("users");
});
});
En este ejemplo, estamos probando que al hacer una petición GET a la ruta /api/users
, obtendremos una lista de usuarios en formato JSON y que el código de estado de la respuesta es 200.
Luego, ejecutamos nuestras pruebas con el siguiente comando:
npx jest
Esto ejecutará todas nuestras pruebas y nos dará un informe detallado de los resultados. Si todas las pruebas pasan, significa que nuestra API está funcionando correctamente y que las pruebas están validando el comportamiento esperado de nuestra API.
En resumen, agregar pruebas unitarias a nuestra API de Express.js con arquitectura hexagonal nos proporciona una mayor confianza en nuestra aplicación y nos ayuda a identificar posibles problemas antes de que se presenten en producción. Mediante el uso de herramientas como Jest y Supertest, podemos realizar pruebas de forma sencilla y efectiva, garantizando la calidad y fiabilidad de nuestra API. ¡Inténtalo en tu próximo proyecto y mejora la calidad de tu código!
De casualidad no tienes pensado hacer algun mini proyecto completo que integre tanto backend y frontend usando arquitectura y ver como funcionaria todo ya mas completo ? quizas junto a github actions o etc para desplegarlo
Muy buen video, gracias 🤩. ¿Tienes pensando hacer algún video donde utilices microservicios con arquitectura hexagonal? SerÃa genial si también incluyeras Docker 🙂
saludos bro, gracias por el video, siempre atento! gracias de veras
Excelente video mi hermano, super útil. EstarÃa genial si pudieras hacer un video explicando conceptos de CQRS y DDD en arquitectura hexagonal.
Epa , lo estaba esperando , excelente compa!
Muy útil, muchas gracias. EstarÃa excelente un ejemplo similar de NestJS.
Saludos!
Excelente, estaria genial un proyecto completo con React y Nest usando arquitectura exagonal.