Gebruik je eigen Car klasse zoals je deze gemaakt hebt voor de auto opgave.
Ook moet je nog even een “test” folder aanmaken (en markeren als test sources root) en JUnit (5) importeren als library.
Om eenvoudig te beginnen schrijven we een paar testen die de basis functionaliteit test op het gebied van “goed gedrag”.
Implementeer hiervoor de volgende methoden:
void createNewCarWithValidLicencePlateGivesNoException()
- waarmee je de constructor test (als alle voorwaarden netjes zijn voldaan).void newCarHasFullTank()
- waarmee je kijkt of de benzinetank ook echt vol zit.En tenslotten nog 2 testen die echt gaan over het rijden met de auto. Ga uit van een auto met een efficiency van 1:10.
void carWhenDriving50kmConsumes5LiterOfFuel()
void carWithEmptyTankCannotDrive()
Wij gaan er van uit dat je een constructor hebt die lijkt op:
public Car(String licensePlate, double efficiency, int tankSize) { .. }
Als je de constructor ontleedt zie je dat er 3 argumenten zijn en dus 3 onderdelen waar we mee kunnen testen. LicensePlate, efficiency en tankSize hebben allen hun eigen voorwaarden waar ze aan moeten doen. We beschrijven de testen per onderdeel.
We hebben natuurlijk al iets getest, maar hebben nooit gelet op de waarden die een constructor kan meekrijgen. Er moeten uiteraard exceptions gegooid worden voor negatieve waarden voor tankSize, maar ook de efficiency mag nooit 0 (of lager) zijn. Schrijf unittesten om dit te controleren en geef ze een duidelijke naam!
Net zoals bij de tankSize mag ook de efficiency niet 0 (of lager) zijn. Voeg deze testen toe.
De nummerplaat is iets ingewikelder dan de overige argumenten, omdat er meer dingen mis (kunnen) gaan. Herinner je dat een geldig nummerbord er uit ziet als 123-ab-4
(dus 3 getallen, 2 letters en 1 los getal, elk gesplitst door een -
). We raden je aan om ook op deze manier bezig te gaan met het testen van de nummerplaat. Test dus eerst de eerste 3 getallen (bijv. door een 4e getal toe te voegen of een getal weg te laten), dan de letters en dan het laatste cijfer.
Denk goed na over wat interessante testen kunnen zijn en schrijf deze!