Domanda

I ammettere che ho quasi nessuno esperienza di unit testing. Ho fatto una prova con dunit qualche tempo fa, ma ha rinunciato perché c'era così molte dipendenze tra le classi nella mia applicazione. Si tratta di una piuttosto grande (circa 1,5 milioni di linee di sorgente) applicazione Delphi e noi siamo una squadra che mantenerlo.

La sperimentazione per ora è fatto da una persona che lo utilizzano prima del rilascio e di rapporto bug. Ho anche impostare alcuni GUI-test in TestComplete 6, ma spesso non riesce a causa dei cambiamenti nella domanda.

Bold per Delphi è utilizzato come quadro persistenza nel database. Siamo tutti d'accordo che unit testing è la strada da percorrere e abbiamo intenzione di scrivere una nuova applicazione in DotNet con ECO come quadro persistenza.

Ho appena non so da dove cominciare con unit testing ... Qualche buon libro, URL, le migliori pratiche etc?

È stato utile?

Soluzione

Bene, la sfida nel test delle unità non è la sperimentazione in sé, ma in scrivere codice verificabile . Se il codice è stato scritto non a pensare a test, allora probabilmente avete un momento davvero difficile.

In ogni caso, se si può refactoring, non refactoring per renderlo verificabile. Non mescolare la creazione di oggetti con la logica, quando possibile (non so Delphi, ma ci potrebbe essere qualche quadro di iniezione di dipendenza per aiutare in questo).

Questo blog ha un sacco di buona visione di test. Controllare questo articolo per esempio (il mio primo suggerimento era basato su di esso).

Per quanto riguarda un suggerimento, provare a testare i nodi foglia del codice prima, quelle classi che non dipendono da altri. Dovrebbero essere più facile da testare, in quanto non richiedono schernisce.

Altri suggerimenti

test di unità di scrittura per il codice legacy di solito richiede un sacco di refactoring. Eccellente libro che copre questo è Michael Piuma di " Lavorare in modo efficace con Legacy codice "

Un ulteriore suggerimento: utilizzare uno strumento di copertura di unit test per indicare i progressi in questo lavoro. Non sono sicuro di quello che gli strumenti buona copertura per il codice Delphi sono però. Credo che questo sarebbe stato un diverso domanda / argomento.

lavorare efficacemente con Legacy Codice

Uno degli approcci più popolari è quello di scrivere le unità di test, come si modifica il codice. Tutti i nuovi codici ottiene test di unità, e per qualsiasi codice che modifica per la prima volta scrive il suo test, verifica, modificarlo, ri-verificare, e poi scrivere / correggere eventuali prove che è necessario a causa di proprie modifiche.

Uno dei grandi vantaggi di avere la copertura dei test buona unità è essere in grado di verificare che le modifiche apportate non inavvertitamente rompere qualcos'altro. Questo approccio permette di fare che, mentre ci si concentra gli sforzi su vostre esigenze immediate.

L'approccio alternativo che ho assunto è quello di sviluppare i miei test di unità tramite cooperative:)

Quando si lavora con il codice legacy, objetcs finte sono davvero utile per costruire unit test.

Date un'occhiata a questa domanda per quanto riguarda Delphi e schernisce: Qual è il tuo preferito Delphi biblioteca beffardo?

Per Net unit testing leggere questo: " The Art of Unit Testing: con esempi in .NET "

A proposito di buone pratiche:
Quello che hai detto è giusto: A volte, è difficile scrivere unit test a causa della dipendenza tra le classi ... Quindi scrivere unit test subito dopo o subito prima ;-) l'attuazione delle classi. In questo modo, se avete qualche difficoltà a scrivere le prove, forse significa che hai un problema di progettazione!

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