Pregunta

Admito que no tengo casi ninguna experiencia de Unittesting. Lo intenté con Dunit hace un tiempo, pero me di por vencido porque había muchas dependencias entre las clases en mi aplicación. Es una aplicación de Delphi bastante grande (aproximadamente 1,5 millones de líneas de origen) y somos un equipo que la mantiene.

La prueba por ahora es realizada por una persona que la usa antes de la liberación e informes de los errores. También he configurado algunas pruebas de GUI en TestComplete 6, pero a menudo falla debido a los cambios en la aplicación.

Bold para Delphi se usa como marco de persistencia en la base de datos. Todos estamos de acuerdo en que Unittesting es el camino a seguir y planeamos escribir una nueva aplicación en Dotnet con ECO como marco de persistencia.

Simplemente no sé por dónde empezar con un poco ... ¿algún buen libro, URL, mejores prácticas, etc.?

¿Fue útil?

Solución

Bueno, el desafío en las pruebas unitarias no es la prueba en sí, sino en Escribir código comprobable. Si se escribió el código no Pensando en las pruebas, entonces probablemente lo hagas muy difícil.

De todos modos, si puede refactorizar, haga refactorización para que sea comprobable. No mezcle la creación de objetos con lógica siempre que sea posible (no conozco a Delphi, pero puede haber algún marco de inyección de dependencia para ayudar en esto).

Este blog Tiene mucha buena idea sobre las pruebas. Controlar Este artículo Por ejemplo (mi primera sugerencia se basó en ello).

En cuanto a una sugerencia, intente probar primero los nodos de hoja de su código, aquellas clases que no dependen de los demás. Deben ser más fáciles de probar, ya que no requieren simulacros.

Otros consejos

Escribir pruebas unitarias para el código heredado generalmente requiere mucha refactorización. Excelente libro que cubre esto es de Michael Feather "Trabajar efectivamente con el código heredado"

Una sugerencia adicional: use una herramienta de cobertura de prueba unitaria para indicar su progreso en este trabajo. Sin embargo, no estoy seguro de cuáles son las buenas herramientas de cobertura para el código Delphi. Supongo que esta sería una pregunta/tema diferente.

Trabajar efectivamente con el código heredado

Uno de los enfoques más populares es escribir las pruebas unitarias a medida que modifica el código. Todos los nuevos códigos obtienen pruebas unitarias, y para cualquier código que modifique primero escriba su prueba, verifíquela, modifíquela, vuelva a verificarlo y luego escriba/solucione cualquier prueba que necesite debido a sus modificaciones.

Una de las grandes ventajas de tener una buena cobertura de prueba unitaria es poder verificar que los cambios que realice no rompa inadvertidamente algo más. Este enfoque le permite hacer eso, mientras enfoca sus esfuerzos en sus necesidades inmediatas.

El enfoque alternativo que he empleado es desarrollar mis pruebas unitarias a través de cooperativas :)

Cuando trabaja con el código heredado, los objetas simulados son realmente útiles para construir pruebas unitarias.

Eche un vistazo a esta pregunta sobre Delphi y Mocks: ¿Cuál es tu biblioteca de burla Delphi favorita?

Para .NET unittesting lee esto: "El arte de las pruebas unitarias: con ejemplos en .net"

Acerca de las mejores precursiones:
Lo que dijo es correcto: a veces, es difícil escribir pruebas unitarias debido a la dependencia entre las clases ... así que escriba pruebas unitarias justo después o justo antes ;-) La implementación de las clases. Así, si tiene algunas dificultades para escribir las pruebas, ¡tal vez significa que tiene un problema de diseño!

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