mock Flashcards
¿Qué son los objetos simulados / dobles en POO?
Objetos que imitan el comportamiento de objetos reales de forma controlada
¿Qué permite el Patrón Proxy?
Permite proporcionar un sustituto para otro objeto.
Un proxy controla el acceso al objeto original, permitiendo hacer algo antes o después de que la solicitud llegue al objeto original.
¿Para qué sirven los mock objects?
Para pruebas de aislamiento
¿Qué es la inyección de dependencias?
Un mecanismo para que un objeto reciba sus dependencias desde el exterior
¿Qué promueve la inyección de dependencias?
Bajo acoplamiento y facilidad para testear
¿Qué permite sustituir la inyección de dependencias en los tests?
Las dependencias reales por simulaciones (mocks)
¿Cómo funciona la inyección por constructor?
Las dependencias se pasan como argumentos del constructor
¿Cómo funciona la inyección por setter?
Se usan métodos set públicos para establecer las dependencias
¿Qué es la inyección por campo?
El framework inyecta directamente las dependencias en los campos del objeto
¿Qué anotación suele usarse en la inyección por campo?
@Autowired
¿Cómo se pueden construir mocks?
Manualmente o con un framework
¿Qué requiere usar un framework como Mockito?
Aprender su sintaxis y API
¿Qué ventaja tienen los mocks manuales respecto a dependencias externas?
No requieren dependencias externas
¿Qué pasa con mockito respecto a dependencias externas?
Introduce una dependencia adicional (gestión de versiones, compatibilidad).
¿Qué desventaja tienen los frameworks frente a mocks manuales en términos de flexibilidad?
Están limitados para métodos estáticos, finales o privados
¿Qué pasa con los mocks manuales respecto a la flexibilidad?
Máxima flexibilidad, permite cualquier comportamiento sin restricciones.
¿Cuál es una ventaja de los mocks con framework en mantenimiento?
Tests más concisos
¿Cuál es una desventaja de los mocks manuales en mantenimiento?
Más código repetitivo y necesidad de actualizar los mocks
¿Qué impacto tienen los frameworks en el rendimiento de los tests masivos?
Sobrecarga mínima por proxies dinámicos o reflexión en tests masivos.
¿Qué ventaja tienen los mocks manuales en rendimiento?
No generan sobrecarga pero mayor tiempo de escritura y mantenimiento.
¿Cuál es una ventaja de legibilidad de los mocks manuales?
Más explícitos pero dependen de la calidad de la implementación.
¿Qué pasa con mockito respecto a la legibilidad?
Sintaxis expresiva, pero menos intuitiva con características avanzadas.
¿Qué riesgo tienen los frameworks respecto al mal uso?
Fácil abusar de mocks, creando tests frágiles
¿Por qué los mocks manuales son menos propensos al mal uso?
Porque requieren diseño cuidadoso