7. Mocks y patch
¿Por qué mockear?
En una prueba unitaria querés controlar el entorno: sin red, sin base de datos real y sin tiempos aleatorios. unittest.mock ofrece objetos falsos y registros de llamadas.
Mock y MagicMock
patch: reemplazar donde se usa
unittest.mock.patch reemplaza un nombre en el módulo bajo prueba. La regla de oro: parcheá el camino donde se busca el símbolo al importar/usar, no solo donde está definido el original.
Ejercicio 1
Creá un Mock() llamado logger y hacé que logger.info("hola") pueda llamarse; luego assert logger.info.called.
Ver solución propuesta
Ejercicio 2
¿Por qué mockear una API HTTP en un unit test en lugar de pegarle a la red real?
Ver idea guía
Velocidad, determinismo (sin fallos por red) y no depender de servicios externos para validar tu lógica.