Java – Testimine (Ülesanne 11)

Automaattestimine

Selles peatükis õpime, kuidas luua automaattesti. Testimine annab võimaluse avastada programmis tekkinud vigu nii loomise kui ka muutmise ajal. Testida saab kogu süsteemi, mõnda klassi või meetodit. Kuid positiivne test, ei pruugi alati tähendada korrektset töötavat programmi.

Java puhul on populaarne pakett JUnit. Meie kirjutame testkoodi ja JUnit keskkond annab teada kas seatud eesmärk õnnestus või mitte. Meie kirjutame automaattesti juba olemasolevale klassile ja meetodile. Kuid teine võimalus on kirjutada testkood enne ning selle põhjal kirjutatakse ülejäänud programm. Seda meetodit nimetatakse Test Driven Development (TDD) ja Eclipse IDE’d kasutades on see päris mugav.

JUnit automaattesti loomine Eclipse IDE abil

Loome testide hoidmiseks projektis eraldi src kataloogi. Parem klikk projekti kataloogile ja vali New>Source Folder. Lisa kataloogi nimeks ‘test’.

Järgmiseks loo testi jaoks samanimeline package, nagu on seda nö pärisprogrammis.

Loome testfaili. Tee parem klikk loodud packagel ning vali New>JUnit Test Case. Kui sul seda kiirmenüüs pole, siis asub see Other>Java>JUnit kataloogis.

Avanenud aknas:

  • vali uuem JUnit; minu puhul praegu JUnit 4
  • veendu, et Source folder ja Package oleks õiged
  • lisa nimi, mis koosneb klassi nimest ja sõnast Test
  • Class under test alt tuleb määrata millist klassi hakkad testima
  • vajuta NEXT

Kui oled next valinud, siis kuvatakse valitud klassi meetodid. Meie soovime näiteks kõiki neli

Vajuta FINISH

Kuna JUnit pole meie projekti veel imporditud, siis Eclipse annab sellest teada. Ehk valime “Add JUnit 4 library to the build path

Ning Eclipse tegi meie eest kõik ära ning ootab testmeetodite kirjutamist.

Testmeetodite loomine

Testimisel kasutatakse assert-lausete abi, kus võrdlemiseks sobivad:

  • assertEquals(expected, actual) 
  • assertTrue()
  • assertFalse()

Teeme testi, kas soo määramine toimus õigesti ja kirjutame testGetSugu() meetodi. Alguses tekitame objekti nagu ikka ja määrame tollele soo. Ja lõpus kasutame assertEquals() meetodit, kus esimese parameetrina läheb kirja mida me ootame ja teise parameetrina, mis tegelikult on.

Testi käivitamine

Testi käivitamiseks tee parem klikk testi klassis ning vali Run As>JUnit Test

See avab analüüsimiseks eraldi paneeli. Nagu näha, tehti neli testi. Meie kirjutatud testGetSugu() meetod on kenasti roheline ja läbis testi.

Teised testid said tulemuseks failure ehk siis ebaõnnestusid. Kui nendel klikkida, siis näeb põhjust. Praegune põhjus on tegelikult lihtne – viga oli testi sissekirjutatud :) Tegelikult need meetodid pärisprogrammis midagi ei väljasta ja neid pole mõtet testida. Kustutan need üldse testimisest ära.

Aga kui tuleks error ehk kriitiline viga, siis see on see, mida me ei taha näha. Selle parendamiseks veendu kõigepealt, et ei ole teinud trükivigu ning seejärel otsi loogikavigasid.

Ülesanne 11

Sul peaks nüüdseks olema päris palju ülesandeid tehtud. Nüüd koosta jUnit abil vähemalt kaks automaattesti, kahe erineva klassi jaoks. Mõlemad testid peavad õnnestuma.

Attachments6

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Kontrolli tunnistust

Tööribale