prova prima/test dopo:
Si deve rilevare che 'test prima' come parte del TDD è altrettanto (se non di più) a che fare con il design in quanto è a che fare con unit testing . È una tecnica di sviluppo del software a sé stante: la scrittura dei risultati dei test è un costante perfezionamento del design.
In una nota a parte: se c'è un vantaggio significativo per TDD da una pura prospettiva di testing unitario, è che è molto più difficile (anche se non impossibile) scrivere un test che è sbagliato quando si fa TDD. Se si scrive il test in anticipo, è necessario che sia sempre in errore perché la logica richiesta per eseguire il test di prova non esiste ancora.Se in seguito si scrive il test, la logica dovrebbe essere, ma se il test è sottoposto a un bug o sta testando la cosa sbagliata, potrebbe passare a prescindere.
I.e. se scrivi prima un test negativo, potresti ricevere una luce verde quando ti aspetti un rosso (quindi sai che il test è sbagliato). Se in seguito scrivi un test negativo, riceverai una luce verde quando ti aspetteresti un green (inconsapevole del test negativo).
Libri
Il libro unit testing pragmatica è la pena dare un'occhiata, come è Roy Osherove di "The Art of Unit Testing". Il libro pragmatico si focalizza più strettamente sui diversi tipi di input di test che è possibile provare a trovare bug, mentre TAOUT copre una più ampia gamma di argomenti come test double, strategie, manutenibilità, ecc. O prenotare è buono; dipende da ciò che vuoi da esso.
Inoltre, ecco uno link to a talk Roy Osherove did on unit testing. Vale la pena fare un orologio (così come alcuni dei video di revisione dei test che ha registrato, in quanto sottolinea vari problemi e cose da fare e cose da fare insieme ai motivi per cui).
come avviare
Non c'è niente di meglio che la scrittura di codice. Trova una classe abbastanza semplice che non faccia riferimento a molto altro. Quindi, inizia a scrivere alcuni test.
Chiediti sempre "cosa voglio provare e provare con questo test?" prima di scriverlo, quindi dargli un nome decente (di solito coinvolgendo il metodo chiamato, lo scenario e il risultato atteso, ad esempio in una pila: "Pop WhenStackIsEmpty ThrowsException").
Pensa a tutti gli input che puoi lanciare, combinazioni diverse di metodi che possono dare risultati interessanti e così via.
Prova a leggere questo articolo: http://blog.codeville.net/2009/08/24/writing-great-unit-tests-best-and-worst-practises/ – Kane
Se sei in C#, spendi i soldi e ottieni una copia di Resharper. Cambia l'intera esperienza. –