6

Sto usando Delphi 7.Che tipo di casi di test possiamo scrivere usando DUnit?

Sono nuovo di DUnit, il mio dubbio è che tipo di casi di test posso scrivere utilizzando DUnit e come (è molto importante per me).

È possibile scrivere casi di test per un particolare evento di clic del pulsante? Perché in tal caso potrebbe esserci una grande serie di codici usati in cui vengono chiamate più unità con le rispettive procedure o funzioni relative al database. In tal caso, qual è l'approccio migliore per scrivere i casi di test e come? (Se possibile, un esempio o un riferimento sarebbe di grande aiuto per me).

Poiché, in un progetto DUnit di esempio non è possibile scrivere interi set di codice dell'applicazione, poiché in alcuni casi potrebbe essere necessario creare un altro modulo.

Quindi, il mio dubbio è per tali situazioni come scrivere casi di test, e in generale anche quale tipo di casi di test possiamo scrivere utilizzando DUnit e, soprattutto, come?

+5

È possibile scrivere i test dell'interfaccia utente con DUnit, ma il supporto è piuttosto limitato. Tuttavia, ti preghiamo di non dirmi che la tua logica applicativa esiste nei gestori di eventi "OnClick". Se si ripete il factoring dell'applicazione per separare la GUI dalla logica dell'applicazione, è possibile testare direttamente la logica dell'applicazione. –

+0

Dai un'occhiata a Model View ViewModel (MVVM) come uno dei molti modi possibili per produrre codice verificabile. Dopo aver capito che otterrai il punto DUnit –

+1

Per MVVM, potresti voler controllare il video da CodeRage7 - http://blogs.embarcadero.com/davidi/2012/11/20/41986 –

risposta

16

Questo dovrebbe essere un commento, ma lo sto scrivendo come risposta perché non si adatta a un commento.

Vi suggerisco di fare due cose:

  • indagare disaccoppiamento la logica di business dalla vostra interfaccia (refactoring del codice)
    genere di dividere il codice in unità autonome che contiene, quindi unità di prova le funzionalità di base di un'unità "dal basso verso l'alto". Non testare unitamente la GUI. Google ad es. "Unit test disaccoppiamento unità Delphi"

  • Scopri i link qui sotto per gli esempi di cosa è possibile fare con l'unità di test:

http://www.howtodothings.com/computers/a928-automated-testing-with-dunit.html
http://www.nldelphi.com/cgi-bin/articles.exe/ShowArticle?ID=14697
https://lists.sourceforge.net/lists/listinfo/dunit-interest
http://www.delphi-treff.de/tutorials
http://sourceitsoftware.blogspot.com/2008/10/getting-line-numbers-in-dunit-test.html
http://wiert.me/2010/09/08/delphi-use-tstrings-to-parse-non-standard-separated-strings-and-validate-it-with-dunit-tests/
http://delphi.about.com/od/vclusing/a/autotestvcl.htm
http://dunit.sourceforge.net/
http://delphi.about.com/od/toppicks/tp/aatpdebug.htm
http://www.nickhodges.com/post/Delphi-Mocks-The-Basics.aspx
http://www.finalbuilder.com/Resources/Blogs/tabid/458/EntryId/287/Introducing-Delphi-Mocks.aspx
https://github.com/Vsofttechnologies/delphi-mocks
http://www.uweraabe.de/Blog/2012/03/17/a-dunit-folder-iterator-extension/
Unit testing in Delphi - how are you doing it?
http://members.optusnet.com.au/~mcnabp/
http://www.nickhodges.com/post/The-Vocabulary-of-Unit-Testing.aspx
http://hanselminutes.com/169/the-art-of-unit-testing-with-roy-osherove

+0

più tempo se potessi – CheGueVerra

+1

E per il refactoring del codice mi sono imbattuto in questa intro: http://www.tabdee.ltd.uk/papers/IntroductionToRefactoring.html –

+0

Abbastanza sicuro di poter rimuovere tutti tranne uno o due link e ottenerlo per adattarsi come un commento. – BoltClock

4

Imparare il test dell'unità scrivendo semplici test. I test semplici sono per una classe che stai costruendo che è testata dall'unità. Una classe testabile dell'unità non è un'applicazione GUI Delphi completa.

Prova questo come un primo esercizio:

  1. fare una classe in grado di fattorizzare un intero da 1 a maxint in una lista di numeri primi che, quando moltiplicati insieme, il risultato del numero originale. I risultati dovrebbero essere ordinati dal più piccolo fattore al più grande. Se la dimensione di quell'elenco dei risultati è 1, il risultato è primo. I numeri zero e negativi sollevano eccezioni.

  2. Invece di fare tutto in una volta, prova lo sviluppo di test "rosso/verde". Ciò significa che basta scrivere abbastanza codice per fare fallire il primo test. (Scrivi il primo test, scrivi abbastanza codice che la classe che stai compilando compila ed esegue, ma fallisce il test. Ora fai il primo test. Non risolvi tutti i numeri di factoring, passa il primo test.)

  3. Ripeti il ​​processo di scrittura dei test in errore e poi il codice necessario per farlo passare finché non hai fornito (con i tuoi test) che la tua classe possa ora calcolare qualsiasi valore intero da 1 a MAXINT.

Quando si tratta di "lavorare test di unità nelle vostre applicazioni legacy esistenti", si dovrebbe verificare un libro intitolato "Lavorare in modo efficace con il codice legacy". Non posso darti una breve introduzione su come iniziare ad aggiungere test unitari a una grande palla di fango (il tuo codice OnClick del pulsante).

Problemi correlati