Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 veröffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend geändert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: „Wer testet ist Feige ;-)“

Was ist da so nötig?

Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

JUnit 5 braucht zur Laufzeit Java 8.

Versionen setzen

<properties>
	        <java.version>1.8</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<restlet-version>2.3.10</restlet-version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		
		<junit.version>4.12</junit.version>
		<junit.jupiter.version>5.0.0-M6</junit.jupiter.version>
		<junit.vintage.version>${junit.version}.0-M6</junit.vintage.version>
		<junit.platform.version>1.0.0-M6</junit.platform.version>
</properties>

Die neuen Abhängigkeiten hinzu:

<!-- Testframework JUnit 5 -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>${junit.jupiter.version}</version>
			<scope>test</scope>
		</dependency>		

                <dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
                </dependency> 
		
		<!-- Only required to run tests in an IDE that bundles an older version -->
		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-launcher</artifactId>
			<version>${junit.platform.version}</version>
			<scope>test</scope>
		</dependency>	
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit.jupiter.version}</version>
		</dependency>	
		<dependency>
			<groupId>org.junit.vintage</groupId>
			<artifactId>junit-vintage-engine</artifactId>
			<version>${junit.vintage.version}</version>
		</dependency>

Neue static Imports ersetzen:

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import org.junit.BeforeClass;
import org.junit.Test;

durch

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

Und die alte Annotation

@BeforeClass

durch

@BeforeAll

Für die Eclipse Oxygen IDE gibt es beta Support. Das ist etwas aufwändiger. Deshalb nehmen wir den alte Runner. Pom ergänzen:

<dependency>
		    <groupId>org.junit.platform</groupId>
		    <artifactId>junit-platform-runner</artifactId>
		    <version>${junit.platform.version}</version>
		    <scope>test</scope>
</dependency>

und in der Klasse die Annotation: @RunWith(JUnitPlatform.class) hinzufügen. Dann laufen die Tests wie gewohnt 🙂

Dann auch mal gleich an der Testklasse und Testmethode eine @DisplayName(„Versions Test“) Beschreibung angefügt.

Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

Es wir noch ein JUnit Vintage Eintrag mehr angezeigt. Das tut aber ja nicht weh.

So, weitere Infos auf der JUnit 5 Seite.

Ähnliche Artikel:

  1. JUnit 4.12 erschienen
  2. Wie können Artifacte nach Maven Central (Nexus) mit einem Mac hochgeladen werden?
  3. Gurken-Test mit Cucumber

wallpaper-1019588
Kalorienarmes Gemüse: Perfekt für Ihre Diät!
wallpaper-1019588
Kalorienarmes Gemüse: Perfekt für Ihre Diät!
wallpaper-1019588
Die Algarve feiert 50 Jahre Nelkenrevolution
wallpaper-1019588
Mobile Suit Gundam SEED FREEDOM: Bandai Namco zeigt den Film in den deutschen Kinos