JUnit - Java programmide testimine


Selle harjutustunni eesmärk on tutvuda programmeerimiskeele Java järgmiste aspektidega:
Lugege läbi asjakohane osa Java õppematerjalidest
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html

Tunniks vajalikud programmipõhjad ning abiteegid leiate koodihoidlast: https://bitbucket.org/i200/intro

Koostage programm (vt. Grade.java), mis arvutab etteantud protsendi  järgi ingliskeelse hinde järgmise reegli alusel:

excellent - 91...100 %,
very good - 81...90 %,
good - 71...80 %,
satisfactory - 61...70 %,
sufficient - 51...60 %,
fail - 0...50 %.

  1. Täpsustage ülesande spetsifikatsioon (näiteks mis toimub 60.5% korral - kas see on lubatud, kuidas teie programmis olukord lahendatakse?)
  2. Täpsustage programmi sisendid ja väljundid, eriolukorrad
  3. Mõelge välja testid, millega programmi tööd kontrollida
  4. Täpsustage algoritm arvestades Java võimalusi
  5. Kirjutage selle järgi programm
  6. Siluge programm ja tehke läbi planeeritud testid
  7. Näidake tulemust juhendajale.

Andmete sisestamiseks kasutage TextIO.java vahendeid.


Kui soovime testimise anda kellegi teise hoolde, siis on abiks moodultestimise raamistik JUnit Proovime kasutada valmis teste. Vormistage oma programm nii, et hinde arvutamiseks klassis Grade oleks eraldi meetod nimega grade, mis saab parameetriks double tüüpi arvu ning tagastab stringi; vigane hinne peab tekitama erindi RuntimeException.

Kompileerimiseks (Unix käsurealt):
javac -cp .:junit-4.12.jar:hamcrest-core-1.3.jar GradeTest.java

Lahendamiseks (Unix käsurealt):
java -cp .:junit-4.12.jar:hamcrest-core-1.3.jar org.junit.runner.JUnitCore GradeTest

MS Windows korral asendage käsureal cp-parameetris koolonid semikoolonitega.

Kui soovite seda näidet teha Eclipse's, siis peate eelpoolviidatud jar-failid lisama projekti 'Java build path -> Libraries' teekide loetelusse (lisamisvõimalus avaneb projekti parema hiirenupu menüüst  'Properties' valiku alt).

Ülesanne (programmipõhi Tellis.java).

On antud risttahukakujuline telliskivi mõõtmetega a, b, c ning ristkülikukujuline ava mõõtmetega x, y (kõik suurused on positiivsed reaalarvud).
Koostage programm, mis teeb kindlaks, kas kivi mahub läbi ava nii, et kivi tahk libiseb mööda ava serva (s.t. kivi ei tohi olla "viltu"). Mõelge hoolega enne, kui kodeerima asute. "Viltuse" asendi lubamise korral mahub näiteks kivi mõõtmetega 1x10x12 läbi ava 7x9!

Võite uurida selle programmi käitumist (vajab TextIO.class faili) käivitades Java  käsurealt (Eclipse abil seda teha ei saa).

Jaanus Pöial