Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.

Slides:



Advertisements
Verwante presentaties
OOS Object geOrienteerd Software-ontwerp - 3
Advertisements

Van domeinklasse tot implementatie
JAVA1 H 1. KENNISMAKING MET JAVA EN DE ONTWIKKELOMGEVINGEN 1. ONTSTAANSGESCHIEDENIS VAN JAVA Java: ontworpen in 1990 door Sun Microsystems voor de programmering.
Het ontwerpen van een klasse
Het type int Tekenen met Java operatoren
Klassen en objecten.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 5: Bestanden.
Hoofdstuk 6: Controle structuren
Hoofdstuk 4: Klassen definiëren
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Hoofdstuk 2 Hallo, C# !.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Inleidend probleem Data structuur (hiërarchie van classes)
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
CONTROLESTRUCTUREN (DEEL 2)
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
6.1 Inleiding HOOFDSTUK 6 METHODEN
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
JAVA1 H 9. OBJECTGEORIENTEERD PROGRAMMEREN: OVERERVING 1. INLEIDING Wat is overerving (inheritance)? Overerving is een mechanisme waarbij software opnieuw.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Deel XIII Eerste echte e-commerce applicatie (iteraties + impl ) 1 Internetapplicaties Deel 13: Eerste echte e-commerce applicatie: Enkele iteraties met.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel X: JSP + Java + database 1 Internetapplicaties Deel 10: JSP + Java + database: Client Server via http.
1 Syntax JavaLogo. 2 Hoofdstuk 1 Tekenen in Java.
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Datacommunicatie en netwerken
Hoofdstuk 11.3 Algoritmen: Zoeken in een netwerk.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
JAVA: een platformonafhankelijke taal
Hoofdstuk 14.1 Algoritmen: Zoeken in een netwerk.
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Herhaling: He who does not learn from history, is doomed to repeat it.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Objectgeoriënteerd Programmeren (2)
Aanroep van een methode voert opdrachten uit in de body daarvan
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Animatie
Gameprogrammeren: Methoden
Gameprogrammeren: Herhalingen
OOS Object geOrienteerd Software-ontwerp - 5
Tinpro015b-les6 Templates.
Tinpro015b-les4 Klassen.
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Gameprogrammeren: Abstracte klassen
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Tiles en File I/O in Tick Tick
Unified Modeling Language
Gameprogrammeren: Klassen en objecten
Implementatie Zoekboom
Software Development fundamentals
Java Masterclass Sar Maroof.
Transcript van de presentatie:

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 2 Het idee  Schrijf uw tests vooraf  Voordelen van vooraf en geautomatiseerd testen:  De vereisten voor de code zijn duidelijk gespecifieerd: zie testklasse  Testen of aan de vereisten voldaan is, is gemakkelijk: Run de testklasse  Het eventueel nadelig effect van aanpassingen op de code is onmiddelijk verifieerbaar.

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 3 Bestandsorganisatie Directorystructuur met bestanden:  c:\  javaoef  test  Test.java (dient als superclass voor eigen testklase)  factuurapp  FactuurAppTest.java (eigen testklasse)  Factuur.java (straks)

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 4 Klassenmodel op specificatie/ontwerp- niveau

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 5 Integratie met de testomgeving Merk op: FactuurAppTest zit zelf in het pakket van de klasse die het test. Om te testen hoe het is om client te zijn buiten het pakket, moet de FactuurAppTest erbuiten geplaatst worden

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 6 FactuurAppTest.java package factuurApp; import test.Test; import java.util.Date; // we gaan straks Date gebruiken public class FactuurAppTest extends Test{ public static void main(String[] args){ public static void main(String[] args){ (new FactuurAppTest()).run(); (new FactuurAppTest()).run(); } protected void compareAll(){ protected void compareAll(){ // Tests go here // Tests go here } }

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 7 We schrijven de tests eerst // In plaats van Tests go here schrijven we: // Creatie factuurobject fac1 Factuur fac1; Factuur fac1; fac1 = new Factuur("Jef","Peters", fac1 = new Factuur("Jef","Peters", "BE ", new Date()); "BE ", new Date()); fac1.voegLijnToe("Rode Verf",50.0,3); fac1.voegLijnToe("Rode Verf",50.0,3); fac1.voegLijnToe("Blauwe Verf",45.0,2); fac1.voegLijnToe("Blauwe Verf",45.0,2); fac1.voegLijnToe("Borstel Medium",79.95,5); fac1.voegLijnToe("Borstel Medium",79.95,5); // Creatie factuurobject fac2 // Creatie factuurobject fac2 // analoog // analoog // test fac1: compareAndReport is geërfd van Test: // test fac1: compareAndReport is geërfd van Test: compareAndReport("fac1", compareAndReport("fac1", fac1.getTotPrijs()+"", “639.75" ); fac1.getTotPrijs()+"", “639.75" ); // test fac2: // test fac2: compareAndReport("fac2", compareAndReport("fac2", fac2.getTotPrijs()+"", “586.0" ); fac2.getTotPrijs()+"", “586.0" );

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 8 Factuur.java Bevat juist genoeg om te compileren. Alle tests falen uiteraard: package factuurApp; import java.util.ArrayList; import java.util.Date; public class Factuur{ public Factuur (String naam, public Factuur (String naam, String voornaam, String voornaam, String BTW, String BTW, Date datum){ Date datum){ } public void voegLijnToe(String omschr, public void voegLijnToe(String omschr, double prijs, double prijs, int aantal){ int aantal){ } public float getTotPrijs(){return 0;}; public float getTotPrijs(){return 0;};}

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 9 Compilatie C:\javaoef>javac factuurApp\FactuurAppTest.java De andere klassen worden mee gecompileerd want factuurAppTest gebruikt ze.

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 10 De test wordt uitgevoerd C:\javaoef>java factuurApp.FactuurAppTest FOUT! fac1 | berekend=0.0, verwacht= FOUT! fac2 | berekend=0.0, verwacht=586 Totaal aantal fouten (fouten/tests): 2/2

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 11 Code aanvullen: Factuur.java public class Factuur{ public Factuur (String naam, public Factuur (String naam, String voornaam, String voornaam, String BTW, String BTW, Date datum){ Date datum){ } private ArrayList lijnen = new ArrayList(); private ArrayList lijnen = new ArrayList(); public void voegLijnToe(String omschr, public void voegLijnToe(String omschr, double prijs, double prijs, int aantal){ int aantal){ FactuurLijn lijn = new FactuurLijn(omschr,prijs,aantal); FactuurLijn lijn = new FactuurLijn(omschr,prijs,aantal); lijnen.add(lijn); lijnen.add(lijn); } public double getTotPrijs(){ public double getTotPrijs(){ double totPrijs = 0.0; double totPrijs = 0.0; for (int i=0; i < lijnen.size(); i++){ for (int i=0; i < lijnen.size(); i++){ FactuurLijn lijn; FactuurLijn lijn; lijn = (FactuurLijn) lijnen.get(i); lijn = (FactuurLijn) lijnen.get(i); totPrijs = totPrijs + lijn.getFactuurLijnPrijs(); totPrijs = totPrijs + lijn.getFactuurLijnPrijs(); } return totPrijs; return totPrijs; }}

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 12 Code aanvullen: FactuurLijn.java package factuurApp; public class FactuurLijn{ public FactuurLijn(String omschr,double prijs, int aantal){ public FactuurLijn(String omschr,double prijs, int aantal){ this.prijs = prijs; this.prijs = prijs; this.aantal = aantal; this.aantal = aantal; } private double prijs; private double prijs; private int aantal; private int aantal; public double getFactuurLijnPrijs(){ public double getFactuurLijnPrijs(){ return prijs * aantal; return prijs * aantal; }}

Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 13 Compilatie en test-run C:\javaoef>javac factuurApp\FactuurAppTest.java C:\javaoef>java factuurApp.FactuurAppTest Alles werkt prima (2 tests uitgevoerd)