Può essere possibile, ma devi chiedere, ne vale la pena?
Quando fai il TDD normale, passi del tempo a scrivere codice che non entra in produzione, ma il tempo è ben speso perché alla fine risparmi più tempo perché è più facile aggiungere nuove funzionalità e dedicare meno tempo a correggere i bug .
Ma quando retrofitting i test unitari su una base di codice legacy basata sull'obiettivo di raggiungere il 100% di copertura del codice, i test verranno spesso scritti per il motivo sbagliato. Puoi iniziare scrivendo un sacco di test basati sulla logica di business. Ma dopo aver raggiunto una certa copertura (credo tra il 60-80%), non si scrivono più test basati sulla logica aziendale, ma guardando l'analisi della copertura del codice, trovando linee di codice che non sono coperte. / p>
I test che coprono l'ultimo 20-40% di un costo elevato, alcuni motivi:
- Non hanno un valore reale
- Ci vuole un'enorme quantità di tempo per scrivere. Quando i test sono basati su regole aziendali, un singolo test coprirà in genere molte righe di codice. Una volta che inizi a scrivere test basati sull'analisi della copertura del codice, tendi a scrivere un test per ogni singola riga di codice scoperto.
- I test tendono a dover essere rifattorizzati molto spesso.
Ciò che devi anche sapere è che un sistema che non ha alcuna copertura di test non è probabilmente facile da testare per cominciare, quindi, semplicemente intraprendendo questo endavour, adattando i test unitari ad una base di codice esistente, la base di codice esistente ha essere refactored abbastanza pesantemente.
Quindi è realistico? Forse. È una buona idea? Non probabile.