1 Mock Objects
2 Problema Se tiene un administrador de salida de buses en una empresa la cual trabaja en transporte interdepartamental, este administrador debe permitir a los Usuarios reservar asientos, mostrar los asientos disponibles, claro para esto la persona/cliente/usuario deberá dar sus datos, y elegir un viaje, que ya tiene un bus asignado que puede ser de tres tipos: Normal, Cama y Suite. Por lo tanto se notan las clases que interactuaran entre si las cuales serán: Persona, Asiento, Bus(Normal, Cama, Suite), Viaje, y finalmente el administrador el cual pertenece a la familia ALFARO, por lo tanto será llamado AdministradorALFARO, las clases serian representadas en el siguiente diagrama de clases:
3
4 Una de las ventajas de usar MockObjects es el modelamiento/testeo de una clase aislada la cual aún no tiene el correcto código funcional, en este caso probaremos la clase Asiento que contendrá un respectivo número, un respectivo pasajero (Persona) y será contenido en un Bus. Siendo este asignado a una persona:
5 Además este Asiento estará contenido dentro de un Bus: El cual a su vez está asignado a un respectivo Viaje:
6 Entonces la clase Asiento un no está disponible pero se la debe usar, y además probarla por lo tanto se escriben los tests correspondientes, pero con la ayuda del package que es proporcionado por Mockito:
7 La sencilla implementación de los MockObjects en Mockito gracias a su when().thenReturn(), permiten crear tests que ya se componen de Asserts, los cuales podrán ser usados por objetos reales en un futuro cuando el sistema esté completo.
8 He aquí el ejemplo, si se usan los test con una clase Asiento ya implementada, nótese que los assert son idénticos en ambos códigos.
9 Conclusiones El uso de los MockObjects permite dos utilidades principales: Aislar una clase y probar los enlaces que esta tiene con las otras clases con las que interactúa, comprobando si un posible error se encuentra dentro la clase, o fuera de la misma. Diseñar en función a un objeto que tiene cierto comportamiento que ya se conoce.
10 Conclusiones Podemos tomar a los mock objects como una herramienta MUY útil a la hora de desarrollar software a gran escala, pues la identificación de errores es bastante mas sencilla, el testeo de clases no implementadas del todo es posible, y la emulación de métodos/comportamientos aun no implementados ayuda al avance en la codificación.
11