Sto sperimentando lo sviluppo basato sui test e ho scoperto che spesso mi trovo in una situazione seguente:
- Scrivo test per alcune funzionalità X. Questi test falliscono.
- Durante il tentativo di implementare X, vedo che ho bisogno di implementare alcune funzionalità Y in uno strato inferiore del mio codice. Quindi ...
- Scrivo i test per Y. Ora entrambi i test per X e Y falliscono.
Una volta ho avuto 4 funzioni in diversi livelli di codice su cui si lavorava contemporaneamente, e stavo perdendo la concentrazione su quello che sto facendo (troppi test falliscono allo stesso tempo).
Penso che potrei risolvere questo problema mettendo più impegno nella pianificazione dei miei compiti ancor prima di iniziare a scrivere test. Ma in alcuni casi non sapevo che avrei dovuto approfondire, perché ad es. Non conoscevo molto bene l'API di livello inferiore.
Che cosa dovrei fare in questi casi? TDD ha qualche raccomandazione?