JUnit 4 Tutorial. Wolfgang Stöttinger

Ähnliche Dokumente
Systematisches Testen

Enterprise JavaBeans Überblick

Testgetriebene Entwicklung mit JUnit4

OOSE4 Testen mit BlueJ/JUnit 4

Programmieren. JUnit-Tests. Heusch -- Ratz -- Institut für Angewandte Informatik

JUnit. Software-Tests

Kurzanleitung JUnit. 1 Grundlagen. 1.1 Begriffsdefinitionen. 1.2 Empfehlungen

JUnit. HierarchicalContextRunner. Mehr Struktur. TDD. Clean Code. Verantwortung. Skills. Namics. Stefan Bechtold. Principal Software Engineer.

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit. Unit testing unter Java

Test-driven development JUnit-Test. Lars Varain

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

Das Test-Framework JUnit ETIS SS04

Unit Tests und Fehlersuche

Funktionales Testen. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Unit Testing mit JUnit. Dr. Andreas Schroeder

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Unit Tests mit Junit 4. Dario Borchers

Programmiertechnik II

Semesterprojekt Semantic Text Browsing. Ulf Leser, Philippe Thomas (, Lars Döhling)

Software-Engineering Software-Management

Softwaretests. verschiedene Testformen Testen im V-Modell: Anwendungsszenarien. Tests. Tests. Tests. Anforderungs- definition. Abnahmetest.

Kapitel 5.2 Testwerkzeuge

Mock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 1

Testen mit JUnit. Motivation

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum

Software Engineering in der Praxis

Praktische Übung 'JUnit-Test'

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Exceptions - Klausuraufgaben

Programmieren in Java

Der EMF-generierte Code. 7. November 2012

1 Klassen und Objekte

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang

Java: Vererbung. Teil 3: super()

Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development

Klassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben

Javakurs für Fortgeschrittene

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Code verifizieren mittels

Fortgeschrittenes Programmieren mit Java. Test Driven Development

JDBC. Allgemeines ODBC. java.sql. Beispiele

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

JTable. W. Lang HWR Berlin, SS

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

1 Modellierung einer Uhr

Test-Driven Design: Ein einfaches Beispiel

Definition Web Service

Remote Method Invocation

Eclipse Tutorial.doc

8.6 Visualisierung der Sortieralgorithmen

Javakurs zu Informatik I. Henning Heitkötter

Einstieg in die Informatik mit Java

IBM Software Demos Rational Systems Developer Introduction

Beispiel: DB-Mock (1/7)

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Unit Tests in der Testgetriebenen Entwicklung

Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Framework zur Unterstützung von Unit-Tests

Remote Method Invocation

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Algorithmen und Datenstrukturen

Verknüpfung auf dem Desktop erstellen und konfigurieren

Einführung in die Programmierung 1

Einführung in Truevision3D

Dokumentenstrukturen

Multimedia im Netz Wintersemester 2012/13

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java

Benutzerdefinierte Housekeepinglisten in SAP BW //

Software Engineering II

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Transkript:

JUnit 4 Tutorial Wolfgang Stöttinger

JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3 After Annotation... 4 1.2.4 BeforeClass Annotation... 4 1.2.5 AfterClass Annotation... 4 1.3 Asserts... 4 1.4 Exceptions erwarten... 4 1.5 Testfunktionen ignorieren... 5 1.6 Tests mit Timeout... 5 2 Einbindung von JUnit in ein Eclipse Projekt... 6 3 Erstellen eines JUnit Test Case... 7 4 Ausführen eines JUnit Test Case... 8 JUnit 4 Wolfgang Stöttinger 2/8

1 Einführung in JUnit 4 JUnit ist ein Tool, welches zum Testen von Java Programmen verwendet wird. Pro Java Klasse wird eine eigener JUnit Test Case erstellt, welcher in verschiedenen Methoden die Funktionen der Klasse Testet. Beispiel für einen JUnit Test Case: import junit.framework.assert; import org.junit.after; import org.junit.before; import org.junit.test; public class SimpleClassTestCase { private SimpleClass simple; public SimpleClassTest() { simple = new SimpleClass(); simple.settext("helloworld"); } } @Test public void gettext () { Assert.assertEquals("HelloWorld", simple.gettext()); } 1.1 Wie funktioniert JUnit? JUnit Tests basieren auf definierten Behauptungen (Asserts), welche ausgewertet werden. Ist ein Assert falsch, so wird eine Exception geworfen und der Test Case schlägt an dieser Stelle fehl. Alle weiteren Testsfunktionen werden nicht mehr aufgerufen. Natürlich können auch manuell Exceptions geworfen werden, welches zu dem selben Resultat führt. 1.2 Annotations Seit JUnit 4 werden Annotations zur Identifikation der Methoden verwendet, ebenso ist es nu nicht mehr notwendig, von junit.framework.testcase abzuleiten. 1.2.1 Test Annotation Die Annotation @Test zeigt an, dass es sich bei dieser Funktion um eine Testfunktion handelt, sie wird bei jedem Testlauf ausgewertet und ist erfolgreich, solange keine Exception auftritt. @Test public void gettext() 1.2.2 Before Annotation Funktionen mit der Annotation @Before werden vor jeder Testfunktion aufgerufen und werden zum Initialisieren verwendet. @Before public void setup () throws Exception JUnit 4 Wolfgang Stöttinger 3/8

1.2.3 After Annotation Funktionen mit der Annotation @After werden nach jeder Testfunktion aufgerufen und werden verwendet um z.b.: Connections zu schließen. @After public void teardown () throws Exception 1.2.4 BeforeClass Annotation Im Gegensatz zur Before Annotation kann diese Annotation nur einmal verwendet werden und wird nur ein einziges mal, vor der Instanzierung der Klasse aufgerufen. @BeforeClass public static void setupbeforeclass () throws Exception 1.2.5 AfterClass Annotation Ähnlich die die BeforeClass Annotation kann diese Annotation auch nur einmal verwendet werden. Diese Funktion wird am Ende des Tests aufgerufen. @AfterClass public static void teardownafterclass () throws Exception 1.3 Asserts Es gibt verschiedene Arten von Asserts, welche alle nach demselben Prinzip funktionieren: Wenn sie fehlschlagen, wir deine Exception geworfen und der Test Case schlägt fehl. Es gibt folgende Arten von Asserts: //Behauptung: beide Werte sind gleich Assert.assertEquals(42, 40 + 2); //Behauptung: die Bedingung ist richtig Assert.assertTrue(true); //Behauptung: die Bedingung ist falsch Assert.assertFalse(false); //Behauptung: die Referenz ist null Assert.assertNull(null); //Behauptung: die Referenz ist nicht null Assert.assertNotNull(new String()); //Behauptung: beide Referenzen sind das selbe Objekt Assert.assertSame(simple, simple); //Behauptung: beide Referenzen sind nicht das selbe Objekt Assert.assertNotSame(simple, simple2); //Test schlägt fehl Assert.fail(); Assert.fail("Not yet implemented"); 1.4 Exceptions erwarten Es gibt für einen Test die Möglichkeit, eine Exception zu akzeptieren, wenn dies gewünscht wird. Dazu kann man für die Annotation @Test Parameter definieren. @Test(expected = NullPointerException.class) public void anytestfunction () JUnit 4 Wolfgang Stöttinger 4/8

1.5 Testfunktionen ignorieren Es besteht die Möglichkeit eine Testfunktion zu ignorieren. Dazu muss die Annotation @Ignore vor die Funktion gestellt werden. Zusätzlich kann ein Parameter übergeben werden, warum die Funktion ignoriert wird: @Ignore("Datenbank offline"). Dadurch wird die Funktion beim Testlauf zwar angezeigt, aber als ignoriert markiert. 1.6 Tests mit Timeout Der Test Annotation kann ein Parameter Timeout übergeben werden, der festlegt, wie lange die Funktion für ihre Durchführung benötigen darf. @Test(timeout=10) schlägt fehl, sobald die Funktion länger als 10ms benötigt. JUnit 4 Wolfgang Stöttinger 5/8

2 Einbindung von JUnit in ein Eclipse Projekt JUnit wird standardmäßig mit Eclipse 3.2 mitgeliefert und muss daher nur mehr dem Build Path hinzugefügt werden. Es können JUnit 3.8.1 und JUnit 4 ausgewählt werden. JUnit 4 Wolfgang Stöttinger 6/8

3 Erstellen eines JUnit Test Case Um eine Klasse testen zu können, muss zuerst ein JUnit Test Case angelegt werden. Funktionen für setup und teardown können automatisch generiert werden. Um Testfunktionen generieren zu lassen, muss eine Testklasse ausgewählt werden und auf weiter geklickt werden. JUnit 4 Wolfgang Stöttinger 7/8

4 Ausführen eines JUnit Test Case Das Ausführen eines JUnit Test Case in Eclipse ist sehr einfach, dazu muss lediglich die Klasse ausgewählt werden und als JUnit Test gestartet werden. Danach öffnet sich ein neuer View, in dem der Fortschritt des Tests angezeigt wird. Im oberen Bereich sieht man den Status der jeweiligen Testfunktion und im unteren Bereich sieht man eventuelle Fehlerausgaben. JUnit 4 Wolfgang Stöttinger 8/8