Kata - Java - Tests - JUnit 4

1,173 views
1,056 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,173
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kata - Java - Tests - JUnit 4

  1. 1. Kata - Java - Tests - JUnit 4Author: Artem KaftanenkoB-S-S GmbH, Dresden; Datum: 20.02.2012
  2. 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 2
  3. 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 3
  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). 4
  5. 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.*; 5
  6. 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 6
  7. 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 ...; } } 7
  8. 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 8
  9. 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; ... } 9
  10. 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 10
  11. 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 11
  12. 12. Vielen Dank! Microsoft „Partner of the year 2010“ Finalist Ausgezeichnet von Gartner als „Cool Vendor 2010“ in Content ManagementB-S-S Business Software Solutions GmbHWartburgstrasse 199817 Eisenach/GermanyTel. +49 3691 709000Mail kontakt@b-s-s.deWeb www.b-s-s.de 12

×