Quali sono le migliori risorse per l'apprendimento di TDD? [chiuso]

23

Voglio imparare (e padroneggiare) TDD. Quali sono i migliori:

  • Libri
  • siti web
  • video
  • elenco di esercizi
  • parole personali di saggezza

per imparare, apprezzare e usare TDD?

    
posta Eric 12.03.2011 - 02:43
fonte

5 risposte

15

Personalmente ho scoperto che leggere un saggio di JUnit o due sottolineando che "scrivi il test prima del codice" era sufficiente per farmi iniziare.

La parte più importante nell'apprendimento di questa tecnologia è scrivere molto del codice basato su test , perché devi modificare alcuni dei modi più basilari in cui pensi di scrivere codice. Cose come:

  • Scrivere il test prima del codice, ti fa pensare a come invocherai il tuo codice e otterrai il risultato. Ciò significa che progettate l'API prima in base a come la userete. Ciò si traduce spesso in una migliore API.
  • Il tuo stile di codifica cambierà perché avrai bisogno di pensare in modo più modulare, per essere in grado di testare parti del codice anziché solo il tutto.
  • Si arriva anche a un punto in cui si sarà in grado di estrarre con sicurezza un grosso chunk e inserire un nuovo chunk anziché comportarsi allo stesso modo, perché il test passa. L'ho fatto di recente con una libreria di analisi delle date, dato che l'originale era troppo indulgente.

Il posto migliore per iniziare in piccolo, è con le tue routine di utilità. La prossima volta che ne hai bisogno, quindi prima pianifichi con i test, scrivi un sacco di test che coprono tutti i tuoi casi ufficiali (compreso ciò che dovrebbe accadere con valori nulli passati, ecc.) E quando tutti i casi d'uso sono implementati dovresti essere in grado di usarli direttamente nel tuo codice e sii sicuro che funzioni come previsto.

È anche mia esperienza che i buoni test possono svolgere un lavoro aggiuntivo come documentazione, perché hai un codice molto conciso che dice esattamente come si comporta il codice in varie situazioni, che può essere facilmente dimostrato corretto (barra verde). Con i commenti attenti non si ottiene molto meglio di così.

Per Java jUnit versione 4 è davvero bello.

    
risposta data 12.03.2011 - 08:23
fonte
8

Oltre a alcuni dei libri già citati, posso consigliare Software orientato agli oggetti in crescita guidato da test . Non ho ancora finito di leggerlo, ma è una lettura degna, che include la storia di un intero progetto TDD realistico, non solo esempi di codice semplificato.

    
risposta data 12.03.2011 - 15:15
fonte
6

Secondo me, TDD significa più rendere il codice testabile, piuttosto che scrivere test.

Certo, puoi scrivere un test prima della codifica, ma l'intero motivo per cui il test è scritto è che puoi codificarti, il che non ti impedirà di scrivere codice difficile da testare.

Dai un'occhiata a questo per capire meglio cosa intendo: My Unified Theory of Bugs

Se sei interessato al concetto e vuoi saperne di più, commenta e ti indicherò la direzione di una presentazione registrata sull'argomento da parte di Google.

UPDATE:

Come scrivere codice pulito e verificabile

Miško Hevery Presentazione (per GoogleTechTalks ) In Google in NYC e sponsorizzato da Procità produttiva gruppo

    
risposta data 12.03.2011 - 03:01
fonte
4

Ho letto due libri:

Sviluppo basato su test: per esempio di Kent Beck e

Quadri di test unitari di Paul Hamil

Il libro di Beck è ben considerato, ma non ho iniziato con i test unitari fino a quando non ho letto "Unit Test Frameworks". Faccio alcuni TDD, ma aggiungo anche test al vecchio codice che devo mantenere (quando posso).

Modifica: Inoltre, una volta ottenuto un handle su di esso, ti consiglio di usarlo su un progetto corrente subito. Per me è stato allora che è avvenuto il vero apprendimento, e penso che il libro "Unit Test Framework" fosse un libro di reference migliore per questo scopo. (Stavo usando nunit con C #).

    
risposta data 12.03.2011 - 03:08
fonte
4

Sebbene non riguardi principalmente TDD (sebbene tocchi su di esso, oltre a progettare per testabilità), The Art of Unit Testing è un libro che consiglierei perché ti insegna come scrivere buoni test.

Più in particolare, insegna come creare test affidabili, manutenibili e leggibili. Penso che questa sia la sezione più importante del libro, al di fuori forse delle nozioni di base sui test unitari e sui framework di isolamento. È ovvio che se i test unitari diventano un punto dolente o aggiungono attrito al lavoro di uno sviluppatore, allora qualsiasi successo o beneficio da essi sarà limitato. Se si investe il tempo e gli sforzi per creare i test, allora (s) dovrebbe essere in grado di ottenere il massimo rendimento da tale investimento.

    
risposta data 12.03.2011 - 03:39
fonte

Leggi altre domande sui tag