De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 1 Internetapplicaties Deel 16: Herhaling Java-programmatie en geautomatiseerd.

Verwante presentaties


Presentatie over: "Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 1 Internetapplicaties Deel 16: Herhaling Java-programmatie en geautomatiseerd."— Transcript van de presentatie:

1 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 1 Internetapplicaties Deel 16: Herhaling Java-programmatie en geautomatiseerd testen (vervolg)

2 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 2 Opgave met inheritance  Opgave:  Een kaartclub kan gewone leden en ereleden hebben.  Ereleden betalen een jaarbijdrage in EUR van 200 min 10 keer hun aantal kleinkinderen.  Gewone leden betalen een jaarbijdrage in EUR van 100 min hun aantal kleinkinderen  (+/-Use case) De totale som van de jaarbijdragen van alle leden van een club moet kunnen opgevraagd worden.

3 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 3 Opmerkingen  Hier en daar hebben we in de oplossing een attribuut toegevoegd om de betekenis van de klasse te verduidelijken: vb clubNaam van de Kaartclub-klasse.  Het is een goed idee om vooraf een UML- klassediagram van de oplossing te tekenen. Maar dit hoef je echt niet met een case-tool te doen. Bovendien hoeft het niet al de attributen en al de methoden te bevatten.

4 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 4 Klassendiagram

5 5 Wijziging van het design  Een pakket (zoals kaartclubApp) moet kunnen getest worden vanuit een ander pakket. Client-klassen gaan namelijk i.h.a. niet tot het pakket kaartclubApp zelf behoren ! Daarom verhuizen we de testklasse KaartclubAppTest.java naar zijn eigen pakket

6 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 6 Wijziging van het design (We tonen hier maar 1 parameter)

7 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 7 Bestandsorganisatie Directorystructuur met bestanden:  c:\  javaoef  test (directory EN package)  Test.java (dient als superclass voor eigen testklase)  kaartclubAppTest (directory EN package)  KaartclubAppTest.java (eigen testklasse)  kaartclubApp (directory EN package)  Kaartclub.java  Lid.java  GewoonLid.java  Erelid.java

8 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 8 KaartclubAppTest.java package kaartclubAppTest; import test.*; import kaartclubApp.*; public class KaartclubAppTest extends Test{ public static void main(String[] args){ public static void main(String[] args){ (new KaartclubAppTest()).run(); (new KaartclubAppTest()).run(); } protected void compareAll(){ protected void compareAll(){ // Tests go here // Tests go here }}

9 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 9 We schrijven de tests eerst // In plaats van Tests go here schrijven we: // Het is normaal dat je eerst de constructor test // Het is normaal dat je eerst de constructor test // Dat doen wij hier niet omdat dat nogal triviaal is // Dat doen wij hier niet omdat dat nogal triviaal is // en we niet de indruk willen geven dat er // en we niet de indruk willen geven dat er // alleen triviale tests bestaan // alleen triviale tests bestaan Kaartclub club1; Kaartclub club1; club1 = new Kaartclub("De Goede Ouden Tijd."); club1 = new Kaartclub("De Goede Ouden Tijd."); club1.voegErelidToe(1,"Janssens","Peerke",10); club1.voegErelidToe(1,"Janssens","Peerke",10); club1.voegGewoonLidToe(2,"Vandeperre","Florke",12); club1.voegGewoonLidToe(2,"Vandeperre","Florke",12); club1.voegGewoonLidToe(3,"Vandendriesse","Charel",7); club1.voegGewoonLidToe(3,"Vandendriesse","Charel",7); compareAndReport(“totale jaarbijdrage", compareAndReport(“totale jaarbijdrage", club1.getTotJaarbijdrage()+"", club1.getTotJaarbijdrage()+"", ( * ) + "" ); ( * ) + "" );

10 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 10 Kaartclub.java Bevat juist genoeg om te compileren. Alle tests falen uiteraard: package kaartclubApp; import java.util.ArrayList; public class Kaartclub{ public Kaartclub(String clubNaam){} public Kaartclub(String clubNaam){} public void voegGewoonLidToe(int lidnr, String naam, String voornaam, public void voegGewoonLidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ int aantKleinkinderen){ } public void voegErelidToe(int lidnr, String naam, String voornaam, public void voegErelidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ int aantKleinkinderen){ } public double getTotJaarbijdrage(){ public double getTotJaarbijdrage(){ return 0.0; return 0.0; }}

11 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 11 Compilatie C:\javaoef> javac kaartclubAppTest\KaartClubAppTest.java De andere klassen worden mee gecompileerd want KaartclubAppTest gebruikt ze.

12 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 12 De test wordt uitgevoerd C:\javaoef>java kaartclubAppTest.KaartclubAppTest FOUT! club1.getTotJaarbijdrage() | berekend=0.0, verwacht=281.0 Totaal aantal fouten (fouten/tests): 1/1

13 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 13 Code aanvullen: Kaartclub.java package kaartclubApp; import java.util.ArrayList; public class Kaartclub{ public Kaartclub(String clubNaam){ public Kaartclub(String clubNaam){ this.clubNaam = clubNaam; this.clubNaam = clubNaam; } private String clubNaam; private String clubNaam; private ArrayList leden = new ArrayList(); private ArrayList leden = new ArrayList(); public void voegGewoonLidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ public void voegGewoonLidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ leden.add(new GewoonLid(lidnr, naam, voornaam, aantKleinkinderen)); leden.add(new GewoonLid(lidnr, naam, voornaam, aantKleinkinderen)); } public void voegErelidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ public void voegErelidToe(int lidnr, String naam, String voornaam, int aantKleinkinderen){ leden.add(new Erelid(lidnr, naam, voornaam, aantKleinkinderen)); leden.add(new Erelid(lidnr, naam, voornaam, aantKleinkinderen)); } public double getTotJaarbijdrage(){ public double getTotJaarbijdrage(){ double totJaarbijdrage = 0.0; double totJaarbijdrage = 0.0; for (int i=0; i < leden.size(); i++){ for (int i=0; i < leden.size(); i++){ Lid lid = (Lid) leden.get(i); Lid lid = (Lid) leden.get(i); totJaarbijdrage += lid.getJaarbijdrage(); totJaarbijdrage += lid.getJaarbijdrage(); } return totJaarbijdrage; return totJaarbijdrage; }}

14 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 14 Lid.java package kaartclubApp; public abstract class Lid{ public Lid(int lidnr, String naam,String voornaam, public Lid(int lidnr, String naam,String voornaam, int aantKleinkinderen){ int aantKleinkinderen){ this.aantKleinkinderen = aantKleinkinderen; this.aantKleinkinderen = aantKleinkinderen; } private int aantKleinkinderen; private int aantKleinkinderen; protected int getAantKleinkinderen(){ protected int getAantKleinkinderen(){ return aantKleinkinderen; return aantKleinkinderen; } public abstract double getJaarbijdrage(); public abstract double getJaarbijdrage();}

15 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 15 GewoonLid.java package kaartclubApp; public class GewoonLid extends Lid{ public GewoonLid(int lidnr, String naam, String voornaam, public GewoonLid(int lidnr, String naam, String voornaam, int aantKleinkinderen){ int aantKleinkinderen){ super(lidnr, naam, voornaam, aantKleinkinderen); super(lidnr, naam, voornaam, aantKleinkinderen); } public double getJaarbijdrage(){ public double getJaarbijdrage(){ return getAantKleinkinderen(); return getAantKleinkinderen(); }}

16 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 16 EreLid.java package kaartclubApp; public class Erelid extends Lid{ public Erelid(int lidnr, String naam, String voornaam, public Erelid(int lidnr, String naam, String voornaam, int aantKleinkinderen){ int aantKleinkinderen){ super(lidnr, naam, voornaam, aantKleinkinderen); super(lidnr, naam, voornaam, aantKleinkinderen); } public double getJaarbijdrage(){ public double getJaarbijdrage(){ return *getAantKleinkinderen(); return *getAantKleinkinderen(); }}

17 Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 17 Compilatie en test-run C:\javaoef>javac kaartclubAppTest\KaartClubAppTest.java C:\javaoef>java kaartclubAppTest.KaartclubAppTest Alles werkt prima (1 tests uitgevoerd)


Download ppt "Deel XVI: Herhaling java-programmatie en geautomatiseerd testen (vervolg) 1 Internetapplicaties Deel 16: Herhaling Java-programmatie en geautomatiseerd."

Verwante presentaties


Ads door Google