2010-06-10 10 views
7

Conosci qualche progetto software aperto che ha avuto test di unità particolarmente interessanti/ben scritti?Test unitari interessanti/ben scritti da leggere (programmazione scritta)

Test di unità di scrittura spesso mi sembra strano, perché sembra troppo casuale, troppo denso, a scarso, .. Sarebbe bello leggere alcuni esempi del mondo reale (piuttosto che libri, codice di esempio di libreria ecc.).

+0

prova a guardare allo sviluppo comportamentale, ad es. il progetto Cucumber è un ottimo esempio di un linguaggio specifico di dominio esterno, che mira a creare test di accettazione in una lingua vicina al linguaggio naturale. –

+0

Sì, apprezzo la bellezza dei vari DSL disponibili per progetti e test di ruby ​​e i diversi paradigmi che illustrano. Il punto critico sono le parti in cui è necessario essere precisi e la complessità è elevata, piuttosto che i test sequenziali come con il cetriolo. –

risposta

2

Ho trovato che this blog post by Misko Hevery è molto utile, soprattutto perché include collegamenti al suo vero codice sorgente con test unitari molto ben scritti.

Aggiornamento: Sfortunatamente, i collegamenti nel suo post sono interrotti ora. Tuttavia, è possibile trovare il file sorgente corrente con una ricerca su http://code.google.com/p/testability-explorer/source/browse/trunk/testability-explorer/src/test/java/com/google/test/metric/collection/KeyedMultiStackTest.java.

2

Recentemente ho avuto il problema di rilevare intervalli di date sovrapposti in Python. Sono rimasto profondamente colpito dall'eleganza di this solution e, in particolare, dai test unitari che l'hanno accompagnato. Sono brevi, chiari e completi. Inoltre, disegnare i casi nell'arte ASCII nella docstring è un colpo di genio, secondo me.

L'unica modifica che ho apportato è stata la divisione di ogni assert in un test separato, per un migliore isolamento.

+0

I test di unità nel collegamento che hai fornito sembrano molto belli e chiari. Tuttavia bisogna dire che scrivere unit test per una funzione che restituisce un valore booleano basato su quattro parametri senza dipendenze esterne è una gioia, ma nella vita reale sono stato molto più spesso di fronte a scenari molto più complessi. – trendl

+0

Sono d'accordo, anche se questo è davvero bello e compatto, le parti difficili si occupano di varie dipendenze (come i famigerati test di database) che esistono in applicazioni reali. –