,

Probando la API de EXPRESS JS con ARQUITECTURA HEXAGONAL usando TESTING

Posted by

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!

0 0 votes
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@Deus-lo-Vuilt
2 months ago

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

@davidalejandrollanesbojorq63
2 months ago

Muy buen video, gracias 🤩. ¿Tienes pensando hacer algún video donde utilices microservicios con arquitectura hexagonal? Sería genial si también incluyeras Docker 🙂

@AlejandroRL868
2 months ago

saludos bro, gracias por el video, siempre atento! gracias de veras

@davidestebanmoralesnustes2041
2 months ago

Excelente video mi hermano, super útil. Estaría genial si pudieras hacer un video explicando conceptos de CQRS y DDD en arquitectura hexagonal.

@Deus-lo-Vuilt
2 months ago

Epa , lo estaba esperando , excelente compa!

@lucassanchez7083
2 months ago

Muy útil, muchas gracias. Estaría excelente un ejemplo similar de NestJS.
Saludos!

@danielloveradamian7120
2 months ago

Excelente, estaria genial un proyecto completo con React y Nest usando arquitectura exagonal.