TDD con Python

Excelente serie de videos donde se muestra cómo hacer TDD con Python. Como dice Angel “Java” López en un post, cuando uno comienza a hacer TDD, luego no puede dejarlo. Además las herramientas utilizadas me encantaron, sobre todo pyTDDmon, que en una ventanita en colores rojo y verde nos indica el estado actual de los tests de unidad.

Este es el primero de la serie:

Los demás videos los pueden encontrar en estos links.

Es muy buena la explicación de “Java” Lopez:

Implementa algo sencillo: código que dado un string con una URL, identificar el protocolo, el dominio, y el recurso que está contenida en esa dirección. En TDD, se va escribiendo el test, el código que pasa el test, y se va progresando de a poco. No hace falta escribir el código correcto y completo desde el principio. Como en otras tantas actividades, el “baby-step”, el “pequeños pasos” de avance, nos ayuda para ir incrementalmente produciendo el resultado esperado.

Noten el ciclo rojo-verde-refactor, el código mínimo que se agrega en cada tests (a veces, retornando valores puestos a mano, sólo para pasar los tests), refactorizando el test si hay código duplicado, las micro-decisiones de diseño que se van tomando, etc… Excelente trabajo para mostrar en video!

Además otra cosa interesante, no directamente relacionado con TDD pero si con las pruebas de unidad, es la cantidad de veces que el autor prueba distintas implementaciones sin preocuparse, ya que tiene toda una suite de tests para saber si la misma es válida. Eso es algo hermoso 🙂

En Making Good Software, leí una vez un post muy interesante titulado “TDD is not about testing!!!” que me llamó mucho la atención al principio. Mucha gente piensa que escribir los tests primero es hacer TDD, lo cual es incorrecto. TDD es una práctica de diseño, y es todo un proceso:

Test-driven development