Alcuni diranno il contrario, ma suggerirei di separare TDD e Unit Testing. TDD è piuttosto un cambiamento mentale e inizialmente i test unitari richiedono tempo. Se li consideri come un elemento, c'è il rischio che non vedrai subito abbastanza benefici e ci sarà la tentazione di abbandonare semplicemente TDD e Test unitari con esso.
La prima cosa è scrivere alcuni test unitari. All'inizio non devono essere perfetti. Basta insegnare a te stesso come testare piccole unità di codice e come usare il derisione per isolare i componenti.
Questo è il più grande che richiede tempo ma ha di gran lunga il più grande profitto. Una volta notato che non è più necessario sfogliare 14 pagine Web per arrivare a quella che si desidera verificare, saprai di cosa sto parlando.
Per me, il grande momento di Eureka è stato un'app di Windows in cui stavo cercando di provare una regex che mi ha richiesto di compilare due moduli prima di poterlo accedere. Ho installato NUnit e ho scritto un test su quel metodo e ho visto quanto velocemente ho risparmiato ore di tempo di test. Quindi ho aggiunto altri test per gestire i casi limite. E così via.
Quindi impara a scrivere bene i test unitari. Impara l'equilibrio tra i test fragili che sono veloci da scrivere e scrivere molti molti test individuali. Questo è abbastanza facile. La lezione è che idealmente ogni test mette alla prova solo una cosa, ma impari rapidamente quanto tempo ci vuole, quindi inizi a piegarti un po 'sulla regola fino a scrivere un test che si interrompe su ogni modifica del codice, quindi torni indietro al giusto equilibrio (che è più vicino al primo rispetto al secondo).
TDD è, come ho già detto, un grande cambiamento mentale nel modo in cui lavori. Tuttavia, non ci vorrà molto tempo per il processo di sviluppo dopo aver già scritto i test. E, lo prometto, vedrai migliorare il tuo stile di codifica sotto i tuoi occhi. O meglio, se non lo lasci cadere, non fa per te.
Un'ultima cosa da tenere a mente è che il TDD non si limita ai test unitari. Il design guidato dai test di accettazione fa parte del TDD. Un altro buon motivo per non confonderli nella tua mente.