2010-01-24 24 views

Respuesta

49

Un objeto simulado es algo que se utiliza para probar la unidad. 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 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 ejemplos de la cosa real.

+2

por mi propio interés: ¿de dónde viene el nombre "simulacro"? –

+4

Bueno, la misma palabra "simulacro" significa "falso". Suena un poco mejor que "objeto falso". :) – Jeff

+23

Mock es una palabra en inglés que significa "imitar" o "imitar". Los objetos simulados imitan las dependencias del objeto que está probando. – danben

1

Los objetos simulados son los que se utilizan 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.

4

Presupuesto de aquí: http://easymock.org/

Prueba de la unidad 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 en aislamiento, tenemos que simular a los colaboradores en la prueba . Un objeto falso es un reemplazo orientado a la prueba para un colaborador. Es configurado para simular el objeto que reemplaza de una manera simple.

por ejemplo, si desea probar las llamadas http, necesitará crear objetos de solicitud de la vida real, 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.

5

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.

14

Mocking and Mock Objects no es específico de Java.Simulacros de objetos es una técnica de prueba de unidad 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.

Comprobar estos artículos que proporcionan una muy buena introducción al concepto de burla:
Mock Objects (PDF)
Endo-Testing: Unit Testing with Mock Objects (PDF)

Si usted está buscando un marco simulacro para las pruebas unitarias en Java, échele un vistazo a: Mockito. Lo he encontrado útil para mis pruebas unitarias.

+1

Nuestro documento "Roles Simulados, No Objetos" es mejor que el documento original de Ensayos electrónicos: http://www.mockobjects.com /files/mockrolesnotobjects.pdf –

Cuestiones relacionadas