El objetivo inicial de una prueba es, curiosamente, que falle. En el mundo TDD una prueba que falla se representa con un icono rojo y una que se supera con uno verde. Dada una nueva característica implementamos la prueba, creamos el código justo y necesario para enlazar con la prueba y.. nos vamos a rojo. Tenemos algo muy valioso entre manos, nada menos que una prueba que falla conectada con un esqueleto de un código que no funciona, que es mucho más que no tener nada. Ahora nuestro objetivo es generar el código necesario para irnos a verde, prueba superada. Repitiendo el proceso una y otra vez veremos cómo las pruebas nos dirigen hacia la implementación final en pequeños pasos de integración.
Dos temas importantes se quedan en el aire y que veremos más adelante:
- Maneras de enlazar con las pruebas.
- Controlar la acumulación de código de mala calidad de un ciclo de pruebas al siguiente.
Por tanto, el ciclo de trabajo en TDD se puede representar por:
1) Escribir una prueba que falle.
2) Escribir código que supere la
prueba.
3)
Integrar el código eligiendo el mejor diseño que respete todas las demás
pruebas anteriores.
Siguiendo este ciclo de trabajo conseguiremos que emerja un buen diseño, el código generado será demostrable ( pues tenemos pruebas de ello ), se tendrán garantías de respetabilidad del sistema en su globalidad siendo el diseño modular y cumplirá estar altamente cohesionado y bajamente acoplado. Claro está que todo ello depende directamente del tercer paso con el que vuelvo a repetir que es sumamente necesario:
- Controlar la acumulación de código de mala calidad de un ciclo de pruebas al siguiente.
No comments:
Post a Comment