12
Kata - Java - Tests - JUnit 4 Author: Artem Kaftanenko B-S-S GmbH, Dresden; Datum: 20.02.2012

Kata - Java - Tests - JUnit 4

Embed Size (px)

DESCRIPTION

Folien zum Thema: "Kata - Java - Tests - JUnit 4".

Citation preview

Page 1: Kata - Java - Tests - JUnit 4

Kata - Java - Tests - JUnit 4

Author: Artem Kaftanenko

B-S-S GmbH, Dresden; Datum: 20.02.2012

Page 2: Kata - Java - Tests - JUnit 4

2

1.1 Automatisierte Tests - Einführung

Testklassen-Struktur

» Initialisierungs-Methoden» Testfall-Methoden» Helper-Methoden

Integration ins automatisierte Testprozess

» mittels zahlreichen Frameworks» Beispiele:

- Java: Junit, TestNG, Cactus, ...- JS: JSUnit, QUnit, ...- ...

Als ein Referenz-Framework wird im Weiteren der JUnit betrachtet

Page 3: Kata - Java - Tests - JUnit 4

3

1.2 Referenzbeispiel - JUnit - Einbindung

Mittels Maven

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.8.1</version><scope>test</scope>

</dependency>

Framework-Namensräume

• org.junit.*• org.hamcrest.*

Testklassen, Test-/Initialisierungs-Methoden werden ausgezeichnet

» mittels Annotationen

Page 4: Kata - Java - Tests - JUnit 4

4

1.3 Referenzbeispiel - JUnit - Annotationen

für Testklassen

» keine Pflicht-Annotationen.

für die Testmethoden (Pflicht):

» @Test

für die Initialisierungsmethoden (optional):

» @Before» @After

- werden ausgeführt vor bzw. nach jeder Testmethode.

» @BeforeClass» @AfterClass

- ein Mal vor bzw. nach einer Testklasseninstanziierung, d.h. ein Mal für den ganzen Satz der Testmethoden (die annotierten Methoden müssen "static" sein).

Page 5: Kata - Java - Tests - JUnit 4

5

1.4 Referenzbeispiel - JUnit - Assertions

Die eigentliche Überprüfung erfolgt mittels s.g. assert-Methoden.

Beispiele*:

» fail()»

» assertTrue(booleanValue)» assertFalse(booleanValue)

» assertNull(objectValue)» assertNotNull(objectValue)

» assertEquals(expectedValue, value)

___

* erhältlich per import static org.junit.Assert.*;

Page 6: Kata - Java - Tests - JUnit 4

6

Kata - JUnit (1) - SimpleCalculatorMultiplicationTest

SimpleCalculatorMultiplicationTest* implementieren für:

» SimpleCalculatorApp#mul(...) Methode

Zu beachten

» aktive Anwendung der vorgestellten Methoden» Ermittlung maximal möglicher Anzahl der fachlich relevanten Testfälle

___

* das Skeleton-Projekt erhältlich unter https://github.com/kaftanenko/edu.java

Page 7: Kata - Java - Tests - JUnit 4

7

2.1 ... - JUnit - parametrisierte Tests

Falls die Testlogik von einem Testfall zu einem anderen gleich ist und die Testfälle sich nur durch die Testdatensätze unterscheiden:

@RunWith(Parameterized.class)

public class TestClass {

public TestClass(Arg1Type arg1, Arg2Type arg2, ...) { ... }

@Test

public void testMethod() { ... }

@Parameterized.Parameters

public static List<Object[]> testData() {

return ...;

}

}

Page 8: Kata - Java - Tests - JUnit 4

8

Kata - JUnit (2) - SimpleCalculatorAdditionTest

SimpleCalculatorAdditionTest implementieren für:

» SimpleCalculatorApp#add(...) Methode

Zu beachten

» es sollte einen parametriesierten Test sein

___

* das Skeleton-Projekt erhältlich unter https://github.com/kaftanenko/edu.java

Page 9: Kata - Java - Tests - JUnit 4

9

3.1 ... - JUnit - Integration der Spring-DI

Falls die Verwendung der Spring-DI erwünscht ist:

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration({ "<class-path-to-spring-bean-context-file>", ... })

public class TestClass {

@Autowired

private ISomeService serviceUnderTest;

...

}

Page 10: Kata - Java - Tests - JUnit 4

10

3.2 ... - JUnit - Integration der Spring-DI

Benötigt zusätzliche Abhängigkeiten

» org.springframework.core» org.springframework.context (?)

» org.springframework.test» apache.commons.logging

Page 11: Kata - Java - Tests - JUnit 4

11

Kata - JUnit (3) - SimpleCalculatorDivisionTest

SimpleCalculatorDivisionTest implementieren für:

» SimpleCalculatorApp#div(...) Methode

Zu beachten

» Spring Dependency Injection einsetzen

___

* das Skeleton-Projekt erhältlich unter https://github.com/kaftanenko/edu.java

Page 12: Kata - Java - Tests - JUnit 4

12

Vielen Dank!

B-S-S Business Software Solutions GmbH

Wartburgstrasse 1

99817 Eisenach/Germany

Tel. +49 3691 709000

Mail [email protected]

Web www.b-s-s.de

Microsoft „Partner of the year 2010“ Finalist

Ausgezeichnet von Gartner als „Cool Vendor 2010“ in Content Management