2011-01-14 20 views
7

permítanme explicar primero lo que estoy buscando con esta pregunta:Prueba Driven Development, Unit Testing

¿Qué clase de desarrollador soy? Soy el tipo que piensa sobre el problema, escribe el código y luego lo prueba solo. Estoy desarrollando aplicaciones web principalmente, pero también hay proyectos basados ​​en la interfaz de usuario (aplicaciones RCP/Swing). Ejecuto mi aplicación y hago clic aquí, prueba esto ... Probablemente conozcas este "estilo".

Bueno, soy un tipo que trata de mejorarse a sí mismo con cada línea/proyecto y quiero que mi código/aplicaciones se prueben pragmáticamente. Escribo en código - Quiero prueba en código.

Así que comencé para algunas de mis clases/funciones para usar pruebas unitarias (junit 4). Esto funciona para cosas de back-end donde no hay UI involucrada. Tbh: Me resulta difícil escribir la mayoría de las pruebas. Si estamos construyendo una aplicación web, probablemente haya interacciones con la sesión o algo así. Supongo que entiendes el punto.

Lo que estoy buscando son algunos recursos, probablemente con ejemplos. Cualquier buen consejo de libro sería bienvenido también. No me malinterprete, no quiero solo cosas para las pruebas lógicas, estoy interesado en probar mi interfaz de usuario.

Tal vez esto es una parte importante también: I desarrollar en Java (85% de las veces) y PHP/Python (el resto)

Saludos

Respuesta

2

que puede utilizar para Selenium para la prueba completa extremo delantero bajo cualquier marco de prueba dominante (ej .: JUnit). Luego, simplemente use solo una JVM para el código de fondo, que es bastante fácil. Usted debe estar cubierto en este sentido. Con Selenium está escribiendo una prueba de extremo a extremo en lugar de una prueba de unidad atómica en cada aspecto. Eso es una compensación para usar la interfaz completa para probar.

1

Existen varios marcos que le permiten probar su interfaz de usuario, he estado probando la interfaz de usuario con el marco FEST para mi UI Swing. Pero hay otras herramientas más adecuadas para la aplicación web. Java Source tiene una gran lista de Open Source Web Testing Tools in Java.

2

Encuentro que la técnica descrita en The Humble Dialog Box es muy efectiva en la conducción de prueba de mi GUI. Esencialmente, cada clase de GUI se divide en 3 clases y una interfaz: (1) el controlador lógico, que define cómo se comporta la lógica de la GUI (cambiar las etiquetas, ¿están habilitadas las cosas ?, etc.) y no tiene dependencias de la real GUI, pero depende de (2) la interfaz de visualización, que define cómo el controlador lógico interactuará con la GUI más adelante. (3) La clase de GUI real, que es una envoltura muy delgada para la biblioteca de GUI real. Finalmente, (4) la vista falsa, que usa para probar para probar que su controlador lógico manipulará la GUI correctamente.

Puede parecer mucho trabajo al principio, pero le recomiendo que lo intente. He tenido muy pocos problemas con mi GUI desde que comencé a hacer esto. El trabajo inicial ahorra dolores de cabeza (y tiempo) más tarde.

+0

+1 para el diálogo humilde! –

1

Test Driven Development: By Example, por Kent Beck Una guía práctica es el trabajo seminal.

Otros me gustaría sugerir son:

El libro RSpec representa la próxima generación - Behavior Driven Development . Si está interesado en TDD, también estará interesado en BDD.

Pero más importante que leer es practicar. Intente hacerlo usted mismo, y vea si puede encontrar o crear un grupo local que haga Code Katas usando TDD.

+0

Voy a ver este libro, gracias por compartirlos Don! – onigunn