Domanda

C'è un buon libro o un sito on-line a discutere l'uso del CppUnit, per un principiante?

Altri suggerimenti

Quando si inizia ad utilizzare unit test, non puntare per una copertura del 100% -. In questo modo si trova la follia

Se vuoi per coprire tutti i principali metodi all'interno della classe (la frutta a basso impiccagione).

Quando ho iniziato unit testing (tramite unittest ++ ) sono andato per la copertura totale, rendendo i metodi che dovrebbe di stato privato protetto e quindi utilizzando le classi wrapper per essere in grado di testarli. funzioni Seam così ho potuto testare le classi che erano più vicini al metallo.

Un buon libro sul test di unità è Lavorare in modo efficace con il codice legacy che, nonostante il suo nome parla di sviluppo campi verde troppo, è scritto bene e ha buoni esempi per l'avvio.

Aggiornamento: Inoltre, non preoccupatevi troppo di coprire ogni singola possibilità alla partenza quando si scrivono i test. Potrai perdere alcune cose. Una volta ho avuto un test che passava, ma il codice dal vivo potrebbe andare in crash in quella funzione. Esecuzione gli ingressi attraverso il test ha mostrato che cosa non andava e mi ha permesso di riscrivere la funzione in modo che superato tutti i test. La prova originale aveva tenuto forte per circa 7 o 8 mesi prima che un cliente (purtroppo per me) scoperto il bug.

Unità-test consente alle classi testing isolatamente , un metodo alla volta.

Fondamentalmente un testcase crea un'istanza della classe in prova e la classe dipende, invocare un metodo e verificare il metodo funziona come previsto con asserzioni .

Un ottimo modo per raggiungere unit test è Test-Driven Development (TDD ), dove le unità di test sono scritti prima del codice. Anche se questo può sembrare strano in un primo momento, questo permette di ottenere il codice che è verificabile (e testato). Se il codice è scritto per primo, poi potrebbe non essere verificabile facilmente.

Il processo di TDD è la seguente:

RED: scrivere un test che non riesce VERDE: scrivere quel tanto che basta il codice per farlo passare Refactoring: pulizia del codice, rimuovere la duplicazione


Non sono sicuro CppUnit è il più utilizzato. E 'un portation di JUnit - il framework Java - ma è abbastanza pesante; esiste verisons semplificate: CppUnitLite, NanoCppUnit e anche Cxxtest, Boost.Test e TUT, vedere questa lista su Wikipedia. Se non sei legato a CppUnit, c'è un articolo confrontandoli .

Il libro mi sono girato verso per "ispirazione" stava lavorando in modo efficace con il codice legacy di Michael Feathers. E 'autore di CppUnit, e ha scritto questo libro come un modo per aiutare aggiungere test di unità per un grande progetto legacy. Se si sta appena iniziando ad un nuovo progetto, non è probabile che aiuterà molto, ma se si sta cercando di ottenere test di unità in un vecchio progetto, lui ha un sacco di buone idee.

Il vero problema con il tentativo di refactoring un progetto esistente sta ottenendo il via libera dalla vostra gestione. Per loro, se non c'è alcun beneficio percepito (nessuna nuova funzionalità, il rischio di modificare il codice) possono pensare che non vale la spesa. Devi lavorare duro per venderli sui benefici reali (miglioramento della qualità, la facilità di aggiunta di nuovo codice, ecc,), e alla fine si può decidere che non vale la pena.

Ho appena preso Patterns xUnit prova da Gerard Meszaros. In realtà arrivato ieri così ho letto solo attraverso i primi capitoli, e non può pienamente consigliarlo un modo o nell'altro ancora. Ma finora ha fornito consigli su filosofia dell'autore di unit testing automatizzato, e che può essere il genere di cosa che stai cercando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top