¿Qué son los objetos simulados en Java?

Me gusta saber qué objetos simulados están en Java. ¿Por qué los creamos y cuáles son sus usos?

Un objeto Mock es algo que se usa para probar unidades. Si tiene un objeto cuyos métodos desea probar y esos métodos dependen de algún otro objeto, crea un simulacro de dependencia en lugar de una instancia real de esa dependencia. Esto le permite probar su objeto de forma aislada.

Los marcos Java comunes para crear objetos simulados incluyen JMock y EasyMock . Por lo general, le permiten crear objetos simulados cuyo comportamiento puede definir, para que sepa exactamente qué esperar (en cuanto a los valores de retorno y los efectos secundarios) cuando llama a métodos en el objeto simulado.

Como ejemplo, un caso de uso común podría estar en una aplicación MVC, donde tiene una capa DAO (objetos de acceso a datos) y un controlador que realiza la lógica comercial. Si desea probar el controlador de manera unitaria, y el controlador tiene una dependencia en un DAO, puede hacer un simulacro del DAO que devolverá los objetos ficticios a su controlador.

Una cosa que es importante tener en cuenta es que generalmente es el caso que los objetos simulados implementan la misma interfaz que los objetos que se burlan: esto permite que su código los maneje a través del tipo de interfaz, como si fueran instancias reales.

Mocking y Mock Objects no es específico de Java. Simulacros de objetos es una técnica de prueba unitaria en la que un fragmento de código se reemplaza por implementaciones ficticias que emulan el código real. Esto ayuda a escribir pruebas unitarias dirigidas a la funcionalidad proporcionada por la clase bajo prueba.

Vea estos artículos que proporcionan una muy buena introducción al concepto de burla:
Simulacros de objetos (PDF)
Endo-Testing: Prueba unitaria con objetos falsos (PDF)

Si está buscando un marco simulado para pruebas unitarias en Java, eche un vistazo a: Mockito . Lo he encontrado útil para mis pruebas unitarias.

Los objetos simulados le permiten simular y verificar objetos reales, sin ejecutar realmente el código real en esos objetos. Puede configurar una simulación para devolver resultados específicos en llamadas a métodos, puede verificar que un método fue o no fue llamado, y otras cosas interesantes.

Mockito es una biblioteca de objetos simulados de Java muy simple y directa.

Cita desde aquí: http://easymock.org/

La prueba unitaria es la prueba de unidades de software de forma aislada. Sin embargo, la mayoría de las unidades no funcionan solas, pero colaboran con otras unidades. Para probar una unidad aisladamente, tenemos que simular a los colaboradores en la prueba. Un objeto falso es un reemplazo orientado a la prueba para un colaborador. Está configurado para simular el objeto que reemplaza de una manera simple.

por ejemplo, si quiere probar llamadas http, necesitará crear objetos de solicitud de la vida real, completos con todas sus dependencias. Esto a menudo puede requerir un gran esfuerzo, de ahí el uso de objetos burlados que proporcionan un camino más rápido para crear una interpretación precisa del objeto que necesita, sin la larga cadena de dependencias.

Los objetos simulados son los que se usan en las pruebas unitarias. que lo ayuda a probar la única funcionalidad que desea probar. porque todas las dependencias se pueden lograr burlándose de esos objetos dependientes. Entonces, si la prueba pasa, se asegurará de que su unidad bajo prueba sea la correcta.

Así que es el escritor de prueba que los crea. Puede usar EasyMock como una herramienta para Mocking.