2013-05-07 29 views
14

Cerco di usare TDD il più possibile. Quando lo faccio, confido tutta la comunicazione con l'esterno nelle classi wrapper. Pochi minuti fa, ho creato un wrapper per la classe statica Directory, così posso testare il mio altro codice senza parlare al file system attuale.Oggetti wrapper test unitario?

Ma per quanto riguarda unità testare il wrapper stesso? Dato che uso TDD, mi rode che non ho scritto test per questo. D'altra parte, è un wrapper e nient'altro, quindi ho davvero bisogno di?

risposta

11

Tendo a fare lo stesso e non mi preoccupo delle classi di wrapper testing unitario, a patto che mi accontenti di contenere la minima quantità di codice. Se, come nel tuo caso, stavo chiamando un certo numero di metodi sulla classe Directory, creerei un'interfaccia contenente ciascuno dei metodi che userei per assicurarmi di essere in grado di testare gran parte del comportamento di il mio sistema sotto test il più possibile

Finché si utilizzano anche i test di integrazione e/o di accettazione, è bene non testare le classi wrapper direttamente. Se provi a testare Directory direttamente è comunque un test di integrazione. Mi chiedo se ho avuto un test automatico a un certo livello che avrebbe fallito se dovessi rimuovere l'interazione con la classe Directory dal mio codice.

Tenere presente che il motivo per cui normalmente si è costretti a scrivere le classi wrapper è perché il codice che si sta tentando di testare non è intrinsecamente testabile ed è una dipendenza che non può essere derisa. La creazione della classe wrapper consente di deridere tale comportamento.

+2

Volevo solo sottolineare che non dovresti _really_ sforzarti per ottenere una copertura del 100% del test unitario. Non è possibile eseguire un test unitario del sistema = codice di frontiera (è, come detto sopra, un test di integrazione per sua natura). Inoltre, la tua classe wrapper dovrebbe essere il più sottile e semplice possibile, nient'altro che un passaggio attraverso l'oggetto spostato. –

+2

Concordato: finché tutti i comportamenti desiderati sono stati testati, oltre a tutti i casi limite che vengono alla luce, continuare a scrivere test a fini di copertura non fornirà il maggior valore aggiunto – levelnis