Pregunta

Tengo curiosidad acerca de cómo muchos de ustedes amigos incorporar a las burlas de los objetos (marcos como JMock, NMock, RhinoMocks de la mano con marcos de pruebas de unidad) en su diario del proceso de desarrollo.¿Cuáles son sus experiencias?

Usted ve, yo se desarrollan en la parte superior de un SIG (sistemas de información geográfica) de la plataforma, en la que la mayoría de los trabajos se refiere a alguna forma de manipulación de datos.Como su objeto de datos modelo es bastante complejo (muchos de clases e interfaces, todos basados en COM), también es muy difícil y engorroso para burlarse.En este caso, burlándose de los que se incurre en una gran cantidad de sobrecarga cuando la escritura suites de prueba.Me pregunto si hay gente en situación similar, o simplemente, ¿cómo se burla (en cualquier situación) trabajar para usted.

¿Fue útil?

Solución

En un reciente proyecto en el que trabajé se utilizó objetos ficticios ampliamente en nuestra unidad de pruebas de enfoque.El proyecto fue del 100% en Java y de tamaño moderado (alrededor de 100.000 líneas de no-código comentado).Fue un Swing de escritorio basado en la aplicación y la única manera eficaz que hemos encontrado para probar la interfaz de usuario de la lógica fue a través de un MVC variante de diseño que nos permitió utilizar objetos ficticios para sustituir la actual Swing de la interfaz de usuario de clases para la realización de pruebas automatizadas.También hemos utilizado burla ampliamente en la prueba de nuestra capa de acceso a datos (Hibernate/DAOs).

En el usuario la interfaz de uso, la Burla fueron fácil y sencillo de construir.Y el diseño de la aplicación (Fowler Vista Pasiva) incorporan fácilmente burla.Este no fue el caso de la burla utilizado en la prueba de la capa de acceso a datos.Pero puedo decir que fue claramente vale la pena el esfuerzo.De hecho, la mayoría de los 'esfuerzo' centrado mucho en venir para arriba con un reutilizables solución que minimiza el trabajo que un desarrollador tenía que hacer para crear cada individuo simulacro.Yo recomiendo tomar el tiempo para analizar y descubrir un método para su situación que le permite burlarse de sus datos SIG de la capa.Que - o manualmente burlarse de cada clase.De cualquier manera la capacidad para ejecutar las pruebas automatizadas que dependen de la burla es que vale la pena...

Otros consejos

En mi situación se burla de trabajo realmente agradable. Pero estoy usando Python, que es tan dinámico que hace que muchas de las cosas que involucran pruebas de mucho, mucho más fácil.

En una situación como la suya, cuando la aplicación es principalmente basado en datos (tan lejos como yo lo veo), se burla puede no ser tan útil.Acaba de pasar datos y ver salir a la luz debe ser suficiente para la prueba.Yo sólo asegúrese de que la aplicación es modular suficiente, por lo que este enfoque puede ser aplicado razonablemente pequeños componentes.

Burla puede ser útil en algún tipo de proyecto.Pero, a veces burlón es muy lento y el retorno de la inversión es baja.

Tratando de probar Sharepoint parece que la burla es la única manera, y sólo typemock te burlarse de clases cerradas.

Burlarse es utilizado muy ampliamente en mi caso.Los simulacros son generalmente para las clases que tiene dependencias externas, por ejemplo,de red, base de datos, sistema de archivos.Cualquiera de estos puede introducir apariencia escamosa en las pruebas, si se burla no se utilizan.

Si la burla de que usted encuentre costoso para escribir, porque hay una gran cantidad de datos falsos para rellenar, se podría establecer algún tipo de pre-poblada de objetos de datos como constantes y el uso de ellos o ligeramente modificadas de copias en su prueba.Si tales objetos de datos tiene dependencias externas, entonces tal vez refactorizar en una manera que usted puede separar las dos preocupaciones.

No es una iniciativa impulsada por Dave Bouman a tratar de construir una biblioteca de la comunidad de Burla para el uso en ArcObjects relacionados con la unidad de pruebas.Su blog y este repositorio svn tiene gran información relativa a la unidad de pruebas de sistemas de información geográfica

http://blog.davebouwman.net/CategoryView,la categoría,la Unidad%2BTesting.aspx

http://svn2.assembla.com/svn/arcdeveloper/TestingUtilities/trunk/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top