En testing, ¿qué es un mock?
Opciones
- Un test que falla, escrito antes que el código
- Un objeto falso que sustituye a una dependencia real (Opción correcta)
- Una copia del entorno de producción para pruebas
- Un test muy lento que se ejecuta de vez en cuando
Respuesta
Un objeto falso que reemplaza a una dependencia real (como un cliente de API) y registra cómo se usó
Por qué
Las dependencias reales pueden ser lentas, costar dinero o ser impredecibles (enviar un correo, cobrar una tarjeta, llamar a una API).
Un mock las sustituye durante un test: decides qué devuelve, y después puedes comprobar cómo lo llamó tu código, por ejemplo '¿se llamó a send_email una vez con esta dirección?'.
En Python: unittest.mock.Mock y patch.
Recuerda
Mock = sustituto que controlas e inspeccionas.