concepto · intermedio · 2 min de lectura
Mocking
El mocking crea objetos simulados que verifican interacciones —qué métodos se llamaron, con qué argumentos, cuántas veces— durante un test.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Mocking as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Mocking es la técnica de crear objetos que no solo reemplazan dependencias, sino que también registran y verifican cómo fueron usados. Un mock de un servicio de email puede fallar el test si send() no fue llamado exactamente una vez con los argumentos esperados, incluso si el resultado del test es correcto.
A diferencia de los stubs —que solo devuelven valores—, los mocks verifican comportamiento. Son útiles para probar interacciones entre objetos, pero un exceso de mocking produce tests frágiles que se rompen cuando cambiás detalles de implementación aunque el comportamiento externo sea el mismo.
Alcance y supuestos
Cubre mocking, su diferencia con stubs y buenas prácticas. Asume familiaridad con test doubles.
Modelo mental
Un inspector de calidad que no solo verifica que el producto final funciona, sino que además exige que se haya usado el destornillador rojo y no el azul, y que se haya apretado exactamente 3 veces.
Uso práctico
- ✅ Verificar interacciones con dependencias externas: emails, notificaciones, logs.
- ❌ Mockear cada dependencia: preferí stubs y fakes cuando alcanza con verificar estado.
Ejemplo trabajado: mock con Jest
const emailService = { send: jest.fn() };
const order = new OrderService(emailService);
await order.place(user);
expect(emailService.send).toHaveBeenCalledWith(user.email, expect.any(String));
Evidencia
- Jest, Mockito y Sinon son las librerías de mocking más usadas.
Fuentes citadas
- Wikipedia, Unit testing (Síntesis, 21-07-2026)