DobleParaPruebas
Escrito por Martin Fowler
Traducido por Ismael Ferrer
Revisado por Carmen Vidal
Gerard Meszaros está trabajando en un libro que recopile patrones de uso de los diferentes frameworks de pruebas Xunit. Una de las cosas más incómodas con las que se ha topado ha sido la variedad de nombres para stubs, mocks, fakes, dummies y otras cosas por el estilo que se usan para sustituir parte del sistema en las pruebas. Para solucionar esto ha creado su propio vocabulario que creo merece la pena difundir.
El término genérico que usa es Doble para Pruebas (Test Double) – a semejanza del doble de un actor-. Doble para Pruebas es un término genérico a usar en cualquier caso en que sustituyes un objeto real por otro para pasar las pruebas. Gerard enumera varios tipos de dobles:
- Dummy: Objeto que se pasa pero que en realidad nunca llega a ser usado. Normalmente sólo se usan para rellenar listas de parámetros.
- Fake: Objeto que tiene una implementación operativa, pero que usualmente toman algún atajo que hace que sea inapropiada para producción (una BaseDeDatosEnMemoria es un buen ejemplo).
- Stub: proporciona respuestas enlatadas a las llamadas hechas durante el test, normalmente no responde en absoluto a nada que esté fuera de lo programado en el test. Los Stubs pueden también guardar un registro sobre las llamadas que se le realizan, como por ejemplo un stub gateway de correo que recuerda los mensajes que ha 'enviado', o solamente cuántos mensajes ha 'enviado'.
- Mocks: son pre-programados especificándoles las llamadas que deben recibir. Pueden lanzar una excepción si reciben una llamada que no esperaban y una vez terminado el test se puede verificar que se les han realizado todas las llamadas que se les especificaron.

