Correspondentie inzake overnemen of reproductie kunt u richten aan:

Vergelijkbare documenten
Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Specialisatie RTES - Project FunnyScreens. Installatie en gebruik van JUnit

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Inhoudsopgave. Hoofdstuk 1: Ant...4

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Inhoudsopgave. Hoofdstuk 1.RMI...2

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Unit testen van EJB's. Koert Zeilstra - iprofs

Brunelleschi. De Dom van Florence

Rekenen Groep 7-2e helft schooljaar.

Geen fabriekswerk. Roeien met de wind mee en de stroom tegen. Jac Willekens

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Rekenen Groep 6-2e helft schooljaar.

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Address Mapping Address Mapping regels:

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

Rekenen Groep 6-1e helft schooljaar.

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Kleine cursus PHP5. Auteur: Raymond Moesker

Antwoorden Rekenen Groep 5-1e helft schooljaar

Ervaringen met het opzetten van een MDD omgeving

Rekenen Groep 4-1e helft schooljaar.

Rekenen Groep 4-2e helft schooljaar.

Rekenen Groep 4-2e helft schooljaar.

Cursus Onderwijs en ICT. digitaal toetsen met Hot Potatoes

Cursus Onderwijs en ICT. Programmeren met Visual Basic

DrayTek Vigor AP700 MAC Filtering

Access Point Management. DrayTek Vigor 2860 & 2925 Serie

eerste voorbeelden in Java

Belangrijk: Voordat u een VPN tunnel creëert dient u ervoor te zorgen dat de datum en tijd instellingen van de router juist staan ingesteld.

FlexSCAN Installatie

Software Test Documentation

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Programmeren in Java 3

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Cursus Onderwijs en ICT. Remediëren met ICT

IMP Uitwerking week 13

R5.0. Bijlage IV. Video converter. Handleiding. Clixmaster Studio. Gebruikershandleidingen

Docman. Handleiding om documenten op een Joomla! website te plaatsen

Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Logging voor Support

EnSights. Handleiding

Inter-LAN Route. DrayTek Vigor 2960 & 3900

WORDPRESS WebShop met

Firewall Configuratie

DrayTek Vigor AP700 Bridge Point-to-Multipoint

Load Balancing. DrayTek Vigor 2960 & 3900

Cursus Onderwijs en ICT. Interactieve multimedia

Werken met Bibliotheek.net

Switch aanmelden in VigorACS 2

Firewall. Web Content Filter

DrayTek Vigor IPv6 AICCU tunnel (AYIYA van SixXS)

1.4. Installatie toelichting. RoTekst. Dé specialist in ruimtelijke informatievoorziening

Koongo. Handleiding Versie

Session Beans.

Access Point Management

Conversie procedure. Bibliotheek.net

Versturen van vanuit een Delphi VCL toepassing

Conversie procedure. Bibliotheek.net

Exact Online. Handleiding Versie

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

JavaServer Faces 2.1

LAN Setup middels Tag Based VLAN. DrayTek Vigor 2960 & 3900 icm G2240 & P2261

Profile Editor - Mobielschademelden.nl

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Modulewijzer Tirdat01

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

LAN DNS. De functionaliteit LAN DNS kunt u vinden in het menu Applications. Hier klikt u vervolgens op het index nummer welke u wilt gebruiken.

Toetsen in Techniekstad

Een fragment wordt afgeleid van de basis klasse "Fragment".

Toelichting op SDK. Versie 2.0. Datum 11 november 2010 Status definitief

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);


Gasten Wi-Fi netwerk

Wij behandelen onderstaande DrayTek Vigor producten met WAN VLAN TAG ondersteuning:

Door ir. Christine Daniels

Stappenplannen MailPlus SOAP API

WORDPRESS. De Volgende Stap. 2015, Roy Sahupala

QoS / Quality Of Service

HANDLEIDING HUAWEI E-5330 MIFI ROUTER

Cursus Onderwijs en ICT. digitaal leermateriaal maken

Syslog / Mail Alert Setup

HANDLEIDING SERVICEDESKPORTAL

DOMjudge teamhandleiding

Port Redirection NAT >> Port Redirection Enable.

Perceptive Process. Release Notes. Versie: 3.7.x

Muziek in de renaissance en barok. Renaissance ( ) Belangstelling voor het hier en het nu

Affecten, emoties en expressie

MultiSafepay. Handleiding Versie

Skype: leren op afstand

Transcriptie:

Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden. Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar worden gemaakt in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen of op enige andere manier, zonder voorafgaande schriftelijke toestemming van de auteur. De enige uitzondering die hierop bestaat, is dat eventuele programma s en door de gebruiker te typen voorbeelden mogen worden ingevoerd opgeslagen en uitgevoerd op een computersysteem, zolang deze voor privé-doeleinden worden gebruikt, en niet bestemd zijn voor reproductie of publicatie. Correspondentie inzake overnemen of reproductie kunt u richten aan: Noël Vaes Roode Roosstraat 5 3500 Hasselt België Tel: +32 474 38 23 94 noel@noelvaes.eu www.noelvaes.eu Ondanks alle aan de samenstelling van deze tekst bestede zorg, kan de auteur geen aansprakelijkheid aanvaarden voor eventuele schade die zou kunnen voortvloeien uit enige fout, die in deze uitgave zou kunnen voorkomen. 06/07/2015 Copyright 2015 Noël Vaes

Inhoudsopgave Hoofdstuk 1: JUnit...2 1.1 Inleiding...2 1.2 JUnit 3 versus JUnit 4...2 1.3 Mijn eerste test...3 1.4 Integratie in de ontwikkelomgeving...4 1.4.1 Integratie in Eclipse...4 1.4.2 Integratie in NetBeans...8 1.4.3 Integratie met ANT...12 1.4.4 Integratie met Maven...12 1.5 De levenscyclus van een testklasse...13 1.6 Annotaties...14 1.7 Assert methoden...16 1.8 Fixtures...18 1.9 Grenzen testen...18 1.10 Exceptions testen...19 1.11 Stub- en Mock-objecten...19 1.12 Test suites...22 1.13 Categorieën...23 1.14 Testen met parameters...25 1.15 Mock-objecten maken met EasyMock...26 Copyright 2015 Noël Vaes - 1 - www.noelvaes.eu

1.1 Inleiding Hoofdstuk 1: JUnit Het grondig testen van software is een belangrijk onderdeel bij de ontwikkeling ervan. Als programmeur hebben we vaak de neiging deze activiteit achterwege te laten omwille van tijdsgebrek of omdat het schrijven van nieuwe functionaliteit ons gewoon meer aantrekt dan het testen van de reeds geschreven code. Het testen laten we dan over aan de mensen van de testafdeling, of in het ergste geval: de klant! Het consequent testen van de verschillende modules lijkt op het eerste zicht tijdrovend maar deze investering verdient zich op langere termijn terug: de software is veel stabieler en bevat veel minder onverwachte nevenwerkingen. De tijd die men achteraf steekt in het zoeken naar diep verborgen bugs is daardoor veel korter. Bij het testen van software onderscheiden we drie vormen: 1. Unit test: hierbij worden de afzonderlijke modules of software-eenheden op zich getest. 2. Functional test: hierbij wordt een stuk functionaliteit getest. Dit impliceert doorgaans de samenwerking tussen verschillende modules. 3. Integration test: hierbij wordt het gehele systeem getest van begin tot einde. In object georiënteerde talen is een module of eenheid het object, of de klasse waar het object een instantie van is. Dit impliceert dus dat we eigenlijk elke klasse die we maken afzonderlijk moeten testen. Bij Extreme Programming gaat men zelfs nog een stap verder en begint men eerst met het schrijven van de test om daarna een klasse te maken die aan de testvoorwaarden voldoet. Het hele ontwikkelingsproces wordt hier voortgestuwd door de testen (test driven development). Klinkt allemaal mooi in theorie maar om programmeurs aan te zetten tot het effectief schrijven van de nodige tests, is er een werkwijze nodig waarbij het maken van deze tests eenvoudig en snel is, want oh ja ze staan onder tijdsdruk hè. Om aan die verzuchting tegemoet te komen bestaan er test frameworks die een aantal taken op zich nemen. In de Java-wereld is het meest gekende en meest gebruikte het open source framework JUnit. Dit is te vinden op volgende website: www.junit.org JUnit is in eerste instantie een framework voor het testen van Java Units. De focus ligt dus op unit testing. In deze cursus nemen we dit framework onder de loep. 1.2 JUnit 3 versus JUnit 4 JUnit is open source en de code is beschikbaar op www.junit.org. De meest recente versie is momenteel versie 4.x, JUnit 4. Er bestaat evenwel ook oudere versie 3.8.x JUnit 3 genoemd. JUnit 3 is waarschijnlijk het meest gebruikt in reeds bestaande testen. Dit framework is gebaseerd op specifieke testklassen waarbij er subklassen gemaakt moeten worden die testmethoden bevatten. Deze testmethoden moeten aan bepaalde naamgevingsvoorwaarden voldoen. Met de komst van Java 5 werden evenwel annotaties toegevoegd aan de programmeertaal. JUnit 4 is een herwerking van het framework waarbij tenvolle gebruik gemaakt wordt van deze nieuwigheid. Dit heeft het schrijven van JUnit testen nog eenvoudiger gemaakt. In deze cursus gaan we gebruik maken van JUnit 4 omdat dit voor het schrijven van nieuwe Copyright 2015 Noël Vaes - 2 - www.noelvaes.eu

testen het meest aangewezen is. Java 5 is immers al tamelijk goed doorgedrongen in de dagdagelijkse praktijk. We zullen evenwel ook in beperkte mate aangeven hoe testen geschreven worden met JUnit 3 zodat deze manier van werken niet geheel vreemd overkomt. 1.3 Mijn eerste test Tijd om zelf onze eerste test te schrijven. Bij unit testing is het de bedoeling dat men iedere unit afzonderlijk kan testen. Zo'n unit is in dit geval een klasse. We maken daarom eerst een eenvoudige klasse waarvoor we nadien een test gaan schrijven. Ja hier komt hij weer: de "Hello World": package eu.noelvaes; public class HelloWorld { public String sayhello() { return "Hello World"; Deze klasse heeft één methode sayhello() die de string "Hello World" teruggeeft. Voor deze klasse gaan we nu een testklasse schrijven. Het is gebruikelijk deze testklasse onder te brengen in hetzelfde pakket. Dat maakt dat de testklasse toegang krijgt tot alle members met package toegangsniveau. Doorgaans zet men de broncode van de testklassen wel in een andere broncodemap (test). In JUnit 4 is een testklasse een gewone klasse die voorzien is van een aantal testmethoden. Deze testmethoden krijgen de annotatie @Test: package eu.noelvaes; import org.junit.*; import static org.junit.assert.*; public class HelloWorldTest { @Test public void testsayhello() { HelloWorld hello = new HelloWorld(); String answer = hello.sayhello(); assertequals("hello World",answer); In JUnit 3 is een testklasse afgeleid van de klasse junit.framework.testcase. De testmethoden moeten tevens beginnen met het woord test. package eu.noelvaes; import junit.framework.*; public class HelloWorldTest extends TestCase { public void testsayhello() { HelloWorld hello = new HelloWorld(); String answer = hello.sayhello(); Copyright 2015 Noël Vaes - 3 - www.noelvaes.eu

assertequals("hello World",answer); In de testmethode maken we eerst een instantie van de klasse HelloWorld. Vervolgens roepen we de methode sayhello() op en bewaren het resultaat in een variabele. Tenslotte testen we met de methode assertequals() of het resultaat overeenkomt met het verwachte resultaat. Om deze test nu uit te voeren moeten we gebruik maken van de testrunner van JUnit. Dit kan het makkelijkst via de geïntegreerde plugin in de IDE, via ANT of Maven. 1.4 Integratie in de ontwikkelomgeving JUnit kan afgehaald worden op de site www.junit.org. Doorgaans is dit niet nodig daar JUnit geïntegreerd is in de meeste gangbare IDE's zoals Eclipse, NetBeans enz.. We kunnen dus gewoon gebruik maken van deze ingebouwde mogelijkheid. Bovendien bevatten deze IDE's speciale plugins om te werken met JUnit die de resultaten van de testen grafisch zichtbaar maken. In deze paragraaf zullen we de integratie in Eclipse, NetBeans, Maven en ANT meer in detail bekijken. 1.4.1 Integratie in Eclipse JUnit is geïntegreerd in Eclipse. Bovendien kan mijn bij de opzet van een nieuw project kiezen tussen JUnit 3 of JUnit 4. Aan de hand van een reeks concrete opdrachten illustreren we het gebruik van JUnit in Eclipse. Opdracht 1: Een project maken in Eclipse In deze opdracht maken we een nieuw project waarbij we JUnit integreren. Maak in Eclipse een nieuw Java-project aan met de naam JUnit. Indien je gebruik maakt van Maven dien je volgende dependency toe te voegen:... <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>[4.8.2,]</version> <type>jar</type> <scope>test</scope> </dependency> </dependencies>... Indien je geen gebruik maakt van Maven volg je volgende stappen: Voeg een tweede sourcefolder met de naam test aan het project toe. Voeg JUnit 4 toe als library bij het Java Build Path. Selecteer hiervoor Add Library en kies vervolgens JUnit 4. Copyright 2015 Noël Vaes - 4 - www.noelvaes.eu

Opdracht 2: Een test schrijven vanuit Eclipse In deze opdracht gaan we een klasse en bijhorende testklasse schrijven m.b.v. Eclipse. Maak een nieuwe klasse HelloWorld : package eu.noelvaes; public class HelloWorld { public String sayhello() { return "Hello World"; Selecteer deze klasse in de Package Explorer of Navigator en kies uit het lokale menu (rechtermuisklik) New->JUnit Test Case Copyright 2015 Noël Vaes - 5 - www.noelvaes.eu

Selecteer New JUnit 4 Test en kies als Source folder de submap test. Wis alle selecties bij method stubs en klik op Next Selecteer de te testen methode sayhello()en klik vervolgens op Finish. Copyright 2015 Noël Vaes - 6 - www.noelvaes.eu