Saltar al contenido
Explorar conocimiento

práctica · intermedio · 2 min de lectura

Integration Testing

El integration testing verifica que multiples unidades o modulos funcionen correctamente al combinarse, detectando problemas en las interfaces entre componentes.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Integration Testing as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

Si los tests unitarios prueban piezas individuales, los tests de integracion prueban que las piezas encajan. Un test de integracion puede verificar que un repositorio realmente escribe y lee de una base de datos de prueba, que un controller HTTP recibe un request y devuelve la respuesta esperada, o que dos servicios se comunican correctamente.

Son mas lentos que los unitarios —tocan I/O, bases de datos, red— pero detectan clases de bugs que los unitarios no: errores de mapeo objeto-relacional, configuraciones incorrectas, serializacion JSON rota.

Alcance y supuestos

Cubre integration testing, su lugar en la piramide y diferencia con unit y e2e.

Modelo mental

Probar el motor de un auto en el banco de pruebas, conectado a la transmision y al sistema de escape. No estas manejando el auto completo —eso seria E2E—, pero estas probando que el motor y la transmision funcionan juntos.

Uso práctico

  • ✅ Repositorios, APIs, mensajeria entre servicios.
  • ❌ Testear integracion de cada combinacion posible: priorizar caminos criticos.

Ejemplo trabajado: test de integracion de API

test("POST /users crea usuario y devuelve 201", async () => {
  const res = await request(app).post("/users").send({ name: "Ana" });
  expect(res.status).toBe(201);
  const user = await db.findUser(res.body.id);
  expect(user.name).toBe("Ana");
});

Evidencia

  • La piramide de testing (Mike Cohn) ubica los tests de integracion entre unitarios y E2E.

Fuentes citadas