GuíaIntermedio

Guía de Contract e Integration Testing

Aprende dos disciplinas que empiezan justo donde terminan los tests unitarios con dobles: el contract testing (verificar que dos componentes que se hablan están de acuerdo en su contrato, consumer/provider) y el integration testing (verificar que los componentes funcionan JUNTOS de verdad, cruzando la costura, con recursos reales). El hilo conductor: un test unitario en verde puede esconder una integración rota, porque el doble mentía. Sobre el caso Reservo extendido con un `BookingRepository` real basado en SQLite (junto al fake ya conocido), practicas escribir un contract test consumer-driven que corre la misma batería contra el fake y contra lo real, verificar el contrato desde los dos lados (consumer y provider), y escribir integration tests que crucen las fronteras reales del sistema — una transacción de SQLite, un archivo, un límite HTTP mínimo — decidiendo qué mantener real y qué doblar. Cierra con aislamiento de datos en integración (rollback de transacciones, recursos temporales) y un proyecto final que combina un contrato verificado contra ambas implementaciones con una prueba de integración completa del `BookingService`.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Entender por qué un test unitario en verde puede esconder una integración rota, y el lugar de contratos e integración en la pirámide de tests
  • Reconocer cuándo un doble (fake/stub) DIVERGE del componente real, y cómo ese bug pasa el unit test pero explota en producción
  • Escribir un contract test consumer-driven: un spec compartido que corre la misma batería de pruebas contra el fake y contra la implementación real
  • Verificar un contrato desde los dos lados — el consumer test ("mando X, espero Y") y el provider test ("dado X, devuelvo Y") — para cazar cambios incompatibles antes de desplegar
  • Escribir integration tests que crucen la costura de verdad, decidiendo qué mantener real y qué doblar en una prueba de integración
  • Probar en las fronteras reales del sistema: una transacción de SQLite, un archivo, una llamada HTTP mínima, manteniendo esas pruebas rápidas y deterministas
  • Aislar datos y estado en integración: rollback de transacciones, fixtures de recursos reales (crear y destruir una base de datos temporal), pruebas independientes y repetibles
  • Combinar contract e integration testing en un caso real: verificar un repositorio contra su fake y su implementación SQLite, y probar el servicio completo contra el repositorio real

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Devs que ya usan dobles de prueba con soltura y quieren verificar que esos dobles no mienten sobre el comportamiento real
  • Equipos con más de un servicio o componente que se comunican entre sí y necesitan detectar contratos rotos antes del despliegue
  • Devs que quieren dar el salto de "unit test con fake" a "probar contra una base de datos y un límite HTTP reales" sin adoptar todavía un framework web completo
  • Devs que están preparando la base para testear una app backend real (FastAPI, base de datos de producción) más adelante

Requisitos y materiales

  • Guía de Dobles de Prueba y Datos de Test completada (o equivalente: saber usar y construir un fake, un stub, un mock)
  • Guía de Fundamentos de Testing y TDD completada (o equivalente: pytest, ciclo TDD, fixtures)
  • Python 3.14 y pytest 9.1.1 instalados localmente (`sqlite3` y `http.server` son de la librería estándar; Pact se trata como concepto, no se instala)

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!