Alcuni diranno altrimenti ma suggerirei di separare TDD e Test unità. Il TDD è un cambiamento piuttosto mentale e inizialmente i test unitari richiedono tempo. Se li consideri come un elemento, c'è il rischio che non vedrai abbastanza benefici immediatamente e ci sarà la tentazione di abbandonare semplicemente TDD e Unit Testing con esso.
La prima cosa è scrivere alcuni Test unitari. All'inizio non devono essere perfetti. Insegnati come testare piccole unità di codice e come usare il mocking per isolare i componenti.
Questo è il più grande time-taker ma ha di gran lunga il più grande successo. Una volta che ti accorgi che non devi più sfogliare 14 pagine web per arrivare a quello che vuoi testare, saprai di cosa sto parlando.
Per me, il grande momento Eureka era un'app per Windows in cui cercavo di testare una regex che richiedeva di compilare due moduli prima che potessi arrivarci. Ho installato NUnit e ho scritto un test su questo metodo e ho visto con quanta rapidità ho risparmiato ore di tempo di test. Poi ho aggiunto altri test per affrontare i casi limite. E così via.
Quindi impara a scrivere bene i test unitari. Scopri l'equilibrio tra i test fragili che sono veloci da scrivere e scrivere molti test individuali. Questo è abbastanza facile. La lezione è che idealmente ogni test mette alla prova solo una cosa, ma impari velocemente quanto tempo ci vuole, quindi inizi a piegarti un po 'alla regola finché non scrivi un test che rompe ad ogni cambio di codice, poi torni indietro verso il giusto equilibrio (che è più vicino al primo rispetto al secondo).
Il TDD è, come ho detto, un importante cambiamento mentale nel modo in cui lavori. Tuttavia, non aggiungerà molto tempo al tuo processo di sviluppo una volta che hai già scritto i test. E lo farai, lo prometto, vedere il tuo stile di codifica migliorare sotto i tuoi occhi. O meglio, se non lo fai cadere, non fa per te.
Un'ultima cosa da tenere a mente è che TDD non è limitato ai test unitari. Il design guidato dal test di accettazione è parte integrante del TDD. Un altro buon motivo per non confonderli nella tua mente.