¿Qué añade patch(..., autospec=True)?
Opciones
- Mocks más rápidos, porque se saltan el objeto real
- El mock usa la firma real, así que las llamadas incorrectas fallan (Opción correcta)
- Assertions automáticas en cada llamada
- Llamadas de red reales para la dependencia parcheada
Respuesta
El mock copia la firma del objeto real, así que fallan las llamadas con argumentos incorrectos o métodos inexistentes
Por qué
Un Mock simple acepta cualquier nombre de método y cualquier argumento. Si cambia la firma de la función real, tus tests siguen pasando mientras producción se rompe.
Con autospec=True, el mock copia los métodos y parámetros del objeto real, así que una llamada que sería inválida en lo real también falla en el test.
Recuerda
autospec = mocks que respetan la firma real.