2008-09-17 12 views
6

Tengo curiosidad acerca de cuántos de ustedes incorporan la burla de objetos (marcos como JMock, NMock, RhinoMocks de la mano con marcos de prueba de unidades) en su proceso de desarrollo diario. ¿Cuáles son tus experiencias?¿Se usa mucho el burlarse de objetos?

Como ve, desarrollo sobre una plataforma GIS (sistemas de información geográfica), en la que la mayor parte del trabajo se relaciona con algún tipo de manejo de datos. Como su modelo de objetos de datos es bastante complejo (muchas clases e interfaces, todas basadas en COM), también es bastante difícil e incómodo burlarse. En este caso, la burla provoca una gran sobrecarga al escribir suites de prueba. Me pregunto si hay personas en situaciones similares, o simplemente, ¿cómo funciona la burla (en cualquier situación en la que se encuentre) para usted?

Respuesta

5

En un proyecto reciente en el que trabajé utilizamos objetos simulados de manera exhaustiva en nuestro enfoque de pruebas unitarias. El proyecto era 100% Java y de tamaño moderado (aproximadamente 100,000 líneas de código no comentado). Era una aplicación de escritorio basada en Swing, y la única forma efectiva que encontramos para probar la lógica de la interfaz de usuario fue a través de un diseño de variante MVC que nos permitió utilizar objetos simulados para sustituir las clases de interfaz de usuario Swing reales para las pruebas automatizadas. También usamos burlas extensamente en la prueba de nuestra capa de acceso a datos (Hibernate/DAO).

En el uso inteface del usuario, los Mocks fueron fáciles y fáciles de construir. Y el diseño de la aplicación (Fowler Passive View) fácilmente incorporó burlas. Este no fue el caso de los simulacros utilizados para probar la capa de acceso a datos. Pero puedo decir que valió la pena el esfuerzo. De hecho, la mayor parte del "esfuerzo" realmente se centró en encontrar una solución reutilizable que minimizara el trabajo que un desarrollador tenía que hacer para crear cada simulacro individual. Recomiendo tomarse el tiempo para profundizar y descubrir un enfoque para su situación que le permita simular fácilmente su capa de datos GIS. Eso - o simplemente simulando manualmente cada clase. De cualquier forma, la capacidad de ejecutar las pruebas unitarias automatizadas que se basan en los simulacros vale la pena ...

2

En mi situación se burla del trabajo realmente agradable. Pero estoy usando Python, que es tan dinámico que hace que muchas cosas que implican la prueba sean mucho, mucho más fáciles.

En una situación como la suya, cuando la aplicación es principalmente impulsada por datos (por lo que veo), los simulacros pueden no ser tan útiles. Solo pasar los datos y verlos salir debería ser suficiente para las pruebas. Simplemente me aseguraría de que la aplicación sea lo suficientemente modular , por lo que este enfoque se puede aplicar a componentes razonablemente pequeños.

1

Burlarse puede ser útil en algún tipo de proyecto. Pero, a veces burlarse lleva mucho tiempo y el retorno de la inversión es bajo.

1

Intentando probar Sharepoint parece que burlarse es la única manera, y solo typemock le permitirá simular clases selladas.

1

La burla se usa mucho en mi caso. Los simulacros suelen ser para las clases que tienen dependencias externas, p. red, base de datos, sistema de archivos. Cualquiera de estos puede presentar escamas en las pruebas si no se utilizan los simulacros.

Si los simulacros son costosos para escribir porque hay muchos datos falsos que rellenar, puede establecer algunos objetos de datos rellenos previamente como constantes y usarlos o copias ligeramente modificadas en su prueba. Si dichos objetos de datos tienen dependencias externas, entonces quizás refactorice de una manera que pueda separar las dos preocupaciones.

Cuestiones relacionadas