© STEVEN CHIANG/Shutterstock.com
Die Highlights von JUnit 5

Es lebe das Testen


Das Testframework JUnit hat seit dem ersten Release wesentlich dazu beigetragen, testgetriebene Entwicklung voranzubringen. Der Legende nach wurde es ursprünglich im Jahr 1997 von Kent Beck und Erich Gamma im Flugzeug per Pair Programming entwickelt [1] und war seitdem Vorbild für viele andere Testframeworks. Nach langer Entwicklung ist mit JUnit 5 endlich das ersehnte Major-Release erschienen. Wir werfen einen Blick auf die wichtigsten neuen Features.

Im Laufe der Jahre hatte es sich gezeigt, dass die zur Verfügung stehenden Konstrukte von JUnit Erweiterungen erschwerten. Auch die Art und Weise, in der IDEs JUnit integrierten, stellte sich als zunehmend hinderlich für die Weiterentwicklung heraus. Dazu kommt, dass die vorherigen Versionen keine Sprachfeatures von Java 8 unterstützen konnten, weil stets die Kompatibilität zu Java 5 gewahrt bleiben musste. Nach längerer Zeit ohne neue Releases und ohne grundlegende Modernisierungsmöglichkeit hat im Oktober 2015 die Entwicklung der vollständig überarbeiteten Version 5 begonnen. Nach einer Startfinanzierung durch die Crowdfunding-Kampagne JUnit Lambda begann im Oktober 2015 die Planung der neuen Version bei einem Workshop mit dem Core-Committer-Team und Herstellern der Tools Eclipse, Intellij IDEA, Gradle und Spring. Nach einem Prototyp und einer Reihe von Milestone-Releases ist im Sommer 2017 mit Version 5.0.0 GA das erste Produktionsrelease der neuen Version erschienen. Version 5.1 ist bereits in Planung.

Ich stelle einige neue Features der neuen Version 5 vor, die für das Schreiben von Tests und damit für alle Entwickler wichtig sind. Als Einstieg soll ein minimalistisches Beispiel dienen, bevor ich einige fortgeschrittene oder grundsätzlich neue Feature vorstelle. Alles Folgende bezieht sich auf die neue JUnit-Jupiter-Test-Engine. Wie es nahe liegt, heißt die wichtigste Annotation immer noch @Test. Im Unterschied zu JUnit 4 muss man allerdings ein anderes Package importieren: org.junit.jupiter.api anstelle von org.junit. Hierbei bezeichnet jupiter die Test-Engine, die das neue JUnit-5-Programmiermodell unterstützt. Die neue JUnit-Plattform unterstützt die Koexistenz verschiedener Test-Engines.

Listing 1: Hello TestWorld!

@BeforeALL static void setupServer() {} @BeforeEach void prepareDatabase() {} @Test void myTest() {} @AfterEach void cleanupDatabase() {} @AfterALL static void tearDownServer {}

Man erkennt in Listing 1, dass sich die Namen der Lifecycle-Methoden im Vergleich zu JUnit 4 geändert haben....

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang