Die Version JUnit 5 ist im September 2017 erschienen. Eines der Hauptziele bei der Neuentwicklung von JUnit 5 war die logische Trennung der Aufgaben zum Erstellen und zur Ausführung von Tests. Das neue JUnit-Test-Framework unterstützt Java 8 und kann auch zusammen mit Java 9 und seinen Nachfolgeversionen verwendet werden.
Das in Java geschriebene Test-Framework hat eine neue API
und besteht aus drei Komponenten:
JUnit Jupiter Engine
JUnit Vintage Engine
JUnit Platform
Die JUnit Platform dient als Ablaufumgebung für das Starten von Test-Frameworks in der JVM und definiert die TestEngine-API für die Entwicklung der Engines von JUnit 5. Diese Plattform liefert einen ConsoleLauncher für das Starten der Tests von der Kommandozeile und einen auf JUnit 4 basierten Runner für das Starten einer TestEngine in einer auf JUnit 4 basierenden Umgebung.
In der JUnit Jupiter Engine steckt der eigentliche Kern von JUnit 5. JUnit Jupiter besteht aus einem »programming model« und einem »extension model« und liefert eine TestEngine für das Schreiben und den Ablauf von Tests, die auf JUnit Jupiter basieren. Mit der JUnit Vintage Engine lassen sich bestehende JUnit-3- und JUnit-4-Tests auf der neuen Plattform ausführen.
Die einzelnen Komponenten der JUnit-5-API befinden sich im Paket org.unit. jupiter.api. So ist eine Koexistenz mit der alten JUnit-4-API, die sich im Paket org.junit befindet, gewährleistet. Jede der drei oben genannten Komponenten besteht aus mehreren JAR-Archiven. Ein wichtiges Ziel von JUnit 5 ist, die Schnittstelle zwischen JUnit und seinen Clients (Build-Tools wie z.B. Gradle und IDEs) stabiler und schneller zu machen, und zwar indem die Mechanismen für die Entwicklung und das Starten von Tests von den Konfigurations- und Filtering-Mechanismen entkoppelt werden, die für eine
externe Umgebung notwendig sind.
Dazu führt JUnit 5 das Konzept eines Launchers ein, der benutzt werden kann, um Tests zu entwickeln, zu filtern und durchzuführen. Diese Infrastruktur liefert eine TestEngine für den Benutzer. Die Launcher-API ist im junit-platform-launcher-Modul enthalten. Ein Beispiel für die Launcher-API ist der bereits erwähnte ConsoleLauncher aus dem junit-platform-console-Projekt.

Dieser Artikel ist ein Auszug aus dem Buch „Java Übungsbuch“ von Elizabeth Jung. Alle Infos zum Buch, das Inhaltsverzeichnis und eine kostenlose Leseprobe findet ihr bei uns im Shop.