GuíaBásico

Guía de Dobles de Prueba y Datos de Test

Aprende a aislar la unidad bajo prueba de sus colaboradores con dobles de prueba (dummy, stub, spy, mock, fake) y a manejar los datos de test sin ahogarte en setup. Esta guía continúa el caso Reservo justo donde termina la de fundamentos: ahora reservar y cancelar tocan el mundo exterior a través de un `BookingService` que orquesta cuatro colaboradores — un `Clock` para la hora, un `PaymentGateway` para cobrar y reembolsar, un `EmailSender` para confirmar, y un `BookingRepository` para persistir. Ahí es donde los dobles se vuelven necesarios: no puedes probar contra un servicio de pago real en cada test. Aprendes el vocabulario preciso de la taxonomía de Meszaros, a stubear lo que ENTRA a la unidad, a verificar con mocks y spies lo que SALE, a construir un fake que funciona de verdad, y a reconocer el "infierno de mocks" que acopla tus tests a la implementación. Cierra con el patrón Builder para datos de test que se leen por intención, y un proyecto final donde eliges y justificas el doble correcto para cada colaborador del `BookingService`.

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

Resultados

Lo que vas a poder hacer

  • Distinguir la unidad bajo prueba de sus colaboradores, y entender por qué NO usar un servicio real (lento, con costo, no determinista) en un test unitario
  • Dominar el vocabulario preciso de dobles de prueba: dummy, stub, spy, mock y fake (taxonomía de Meszaros), y distinguir verificación de estado vs. de comportamiento
  • Escribir stubs que controlan lo que ENTRA a la unidad (respuestas enlatadas) para probar caminos felices y de fallo, sin sobre-especificar
  • Escribir mocks y spies que verifican lo que SALE de la unidad (`unittest.mock`: `Mock`, `assert_called_once_with`, `call_args`) y reconocer cuándo esa verificación es excesiva
  • Construir un fake que funciona de verdad (un repositorio en memoria) y entender el contract test que lo mantiene honesto contra la implementación real
  • Reconocer el infierno de mocks: tests acoplados a la implementación que se rompen en cada refactor, y las escuelas London vs. Detroit
  • Usar el patrón Builder y otros datos de test (object mother, factories, defaults sensatos) para que un test se lea por intención, no por ruido de setup
  • Elegir el doble correcto para cada colaborador en un caso real (stub para consultas, spy/mock para efectos de salida, fake para persistencia) y justificar la elección

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Devs que ya completaron los fundamentos de testing/TDD y ahora necesitan aislar unidades que dependen de colaboradores externos (pagos, email, persistencia)
  • Devs que abusan de `unittest.mock` sin criterio y terminan con suites frágiles que se rompen en cada refactor
  • Equipos que necesitan datos de test legibles en vez de objetos armados a mano línea por línea
  • Devs que quieren decidir con criterio cuándo doblar un colaborador y cuándo probarlo de verdad

Requisitos y materiales

  • Guía de Fundamentos de Testing y TDD completada (o equivalente: correr pytest, ciclo rojo-verde-refactor, asserts, fixtures básicas, parametrize)
  • Conocimientos básicos de Python orientado a objetos (clases, inyección de dependencias por constructor)
  • Python 3.14 y pytest 9.1.1 instalados localmente (`unittest.mock` es de la librería estándar)

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!