![]() |
Imagen de http://www.agilenutshell.com/test_driven_development |
- Escribir un test que falle
- Escribir código de producción que haga que el test pase
- Refactoriza el código
Estos pasos son un gran resumen de las principales tareas que hay que hacer en TDD pero para alguien nuevo en TDD no es suficiente. Voy a extender el mismo ciclo de desarrollo añadiendo más detalles. La mayoría de los pasos vienen de la siguiente página:
http://c2.com/cgi/wiki?TestDrivenDevelopment
Versión extendida
- Selecciona un test. Busca un test que sea fácil de implementar pero que permita progresar lo máximo posible en la implementación
- Piensa cómo quieres comprobar que el test pasa
- Piensa qué debe ocurrir cuando todo va bien y cuando ocurre algo inesperado (excepciones). Por ejemplo, cuando hay problemas en la base de datos.
- Escribe el test teniendo en cuanta cómo quieres que sea la API. Con la API me refiero al nombre del método, a sus parámetros y al valor a devolver
- Haz que compile el código creando las clases y métodos que has escrito en el test. Los métodos deben devolver un valor, el que consideres que es el de por defecto
- Comprueba que el test no pasa
- Escribe el mínimo código de producción que hace que todos los test pasen. Si, el mínimo.
- Si es necesario, mejora el código sin cambiar su comportamiento. O lo que es lo mismo, refactoriza el código
- Comprueba que todos los test pasan
Notas
Teniendo en cuenta los pasos de la versión extendida, cuando escribimos el test ya hemos decidido qué vamos a hacer, cómo vamos a testearlo y cómo será su API. Luego dirán que con TDD no se piensa :)primer test, el código no compila y tendremos que crear todas las clases y métodos necesarios para que el código compile. Es una forma diferente de pensar, por lo que es necesario tiempo para asimilarla.