Quando scrivo per primo test , non è tanto una questione di verificare il corretto funzionamento del mio codice, non è veramente una questione di scatola nera o scatola bianca o qualsiasi altra cosa relativa a garanzia della qualità , ed ecco perché ...
Nel corso degli anni ho esercitato e lucidato un'abilità per convincere il management che ho bisogno di buoni tester 1 , 2 , 3 e questo è sufficiente per garantire che il mio codice funzioni come previsto senza che io debba pensarci molto.
Il motivo principale per cui preferisco testare per primo è che mi aiuta a capire come progettare il mio codice in modo che sia comodo da usare. Non sono bravo a immaginare nella mia testa come il mio modulo sarà usato da altri moduli, quindi posso farlo troppo complicato e questo mi morderà più tardi e forse richiederà anche una riprogettazione.
Questo è un problema, non importa se sto codificando un modulo per me o per qualcun altro, è ugualmente doloroso usare me stesso un'interfaccia scomoda e dover spiegare il suo utilizzo ad altri programmatori.
L'approccio "primo test" mi salva da quel dolore; non richiede immaginazione per vedere immediatamente come verrà utilizzato il mio modulo se progettato in questo modo e semplifica la scelta di quello più conveniente.
Quando codifica il modulo per qualcun altro, mi salva anche dalla necessità di spiegare dolorosamente come usarlo.
Look, code in this test
shows how you should use that module and if you run it, you'll also see what results you should expect. Using any other way than shown in this test
would be a mistake. Now go away and let me do something interesting.