Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
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.
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:
Class under test
alt tuleb määrata millist klassi hakkad testimaKui 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.
Testimisel kasutatakse assert-lausete abi, kus võrdlemiseks sobivad:
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.
1 2 3 4 5 6 7 8 | @Test public void testGetSugu() { Loom uusLoom = new Loom(); uusLoom.setSugu("m"); String tulemus = uusLoom.getSugu(); assertEquals("m", tulemus); } |
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.
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.