Ti suggerisco caldamente di NON seguire questo approccio.
Scrivere test di unità in cima al codice di produzione è un sacco di spese generali per molte persone. Non importa come lo si affetta, con i test unitari, si finisce per scrivere il doppio se non il triplo della quantità di codice che avresti avuto altrimenti.
I test unitari sono ottimi e hanno un enorme numero di benefici, ma molti di questi benefici sono a lungo termine e non iniziano a pagare indietro più tardi (quando le persone devono fare riferimento su come utilizzare l'API, quando il prossimo -op rompe il codice esistente ... ecc.)
Tuttavia, i test unitari hanno enormi benefici a breve termine in quanto, quando le persone scrivono codice (con o senza TDD), le persone devono esercitare quel codice almeno una volta prima di verificarlo. In ambiente non TDD, proverebbero a esegui il codice nel contesto di un'applicazione più grande, oppure potrebbero scrivere alcune utilità throw-away solo per invocare le funzioni che hanno appena scritto. I test unitari sono fantastici perché mentre li stai scrivendo, puoi vedere il tuo codice correre e sistemarlo sul posto.
Quando una persona entra nel flusso (ciò che viene indicato come rosso / verde / refactor ciclo), overhead TDD, IMO basato su un'esperienza molto limitata (ma molta ricerca) diventa molto più piccolo di 2x perché anche se produci più codice, quel codice ti aiuta istantaneamente a scrivere il tuo software di produzione molto più velocemente fornendo feedback di un ordine di grandezza prima rispetto ai test manuali.
Quindi, idealmente, per ottenere il vantaggio con TDD con un minimo ammontare di spese generali, vuoi pensare alla prossima funzione che vuoi aggiungere alla produzione, scrivere un test, scrivere la funzione, assicurarti che passi, ripulire, andare avanti prossima funzione .... spediscilo.
Quello che stai proponendo ucciderà direttamente il beneficio a breve termine che ho appena descritto. Invece di scrivere un test e poi la funzionalità, finirai per scrivere molti test e il feedback sarà molto più lento poiché tra recensioni / approvazioni potrebbe richiedere ore se non giorni. E invece di scrivere il test esattamente per il prossimo pezzo di codice di produzione su cui lavorerai, finirai per scrivere test preventivi per cose che "potresti" introdurre in produzione.