Algunos dirán lo contrario, pero sugeriría que separe las pruebas de unidad y TDD. TDD es un cambio mental y las pruebas unitarias parecen tomar inicialmente tiempo. Si considera que son un solo elemento, existe el riesgo de que no verá suficientes beneficios de inmediato y habrá una tentación de simplemente dejar caer TDD y pruebas de unidad con él.
Lo primero es escribir algunas pruebas unitarias. No tienen que ser perfectos al principio. Solo enséñese cómo probar pequeñas unidades de código y cómo usar la burla para aislar componentes.
Este es el que más tiempo toma, pero tiene, con mucho, el mayor beneficio. Una vez que note que ya no tiene que pasar por 14 páginas web para llegar a la que desea probar, sabrá de lo que estoy hablando.
Para mí, el gran momento de Eureka fue una aplicación de Windows en la que estaba tratando de probar una expresión regular que requería completar dos formularios antes de poder llegar a ella. Instalé NUnit y escribí una prueba sobre ese método y vi cuán rápido ahorré horas de tiempo de prueba. Luego agregué más pruebas para lidiar con los casos extremos. Y así.
Luego aprende a escribir pruebas unitarias bien. Aprenda el equilibrio entre las pruebas frágiles que son rápidas de escribir y escribir muchas pruebas individuales. Esto es bastante fácil La lección es que, idealmente, cada prueba solo prueba una cosa, pero aprende rápidamente cuánto tiempo lleva, por lo que comienza a inclinarse un poco sobre la regla hasta que escribe una prueba que rompe cada cambio de código, luego retrocede hacia el equilibrio correcto (que está más cerca del primero que del segundo).
TDD es, como dije, un cambio mental importante en su forma de trabajar. Sin embargo, no agregará mucho tiempo a su proceso de desarrollo una vez que ya esté escribiendo pruebas de todos modos. Y, lo prometo, verá que su estilo de codificación mejora ante sus propios ojos. O más bien, si no lo sueltas, no es para ti.
Una última cosa a tener en cuenta es que TDD no se limita a las pruebas unitarias. El diseño impulsado por la prueba de aceptación forma parte de TDD. Otra buena razón para no mezclarlos en tu mente.