JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

In JUnit 5 gibt es nun die Möglichkeit, Testmethoden mit Parametern ausszuführen. Anstatt der @Test Annnotation verwendet man die @ParameterizedTest. Nun braucht man noch eine Datenquelle mit @ValueSource.

JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

Diese Klassen liegen in:

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

und muss in der pom.xml ergänzt werden.

Es gibt unterschiedliche Typen (int, long, double …) von ValueSource. Hier ein Beispiel mit einem String Array:

@DisplayName("Parameter Test mit unterschiedlichen URLs wenzlaff.de")
	@ParameterizedTest
	@ValueSource(strings = { "/umgebung/service", "/umgebung/mindmap", "/umgebung/version" })
	public void parameterTesten(String hostServiceUrl) {

	String hostUrl = StandaloneServer.HOST + hostServiceUrl;
	ClientResource clientResource = new ClientResource(hostUrl);
	Umgebung resource = clientResource.wrap(Umgebung.class);

	String vers = resource.getUmgebung();
	assertTrue(vers.length() > 4);
}

Es werden also drei Durchläufe ausgeführt, und man kann gut sehen, welcher Test ausgeführt wurde:

JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

Nun kann man auch noch den Anzeige Namen im Testlauf schöner machen, in dem die ParameterizedTest Annotation ergänzt wird um

@ParameterizedTest(name = „Testfall Nr. {index} mit URL Argument [{arguments}]“)

Dann sieht das ganze nach der Ausführung so aus:

JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

Man kann also auf die Parameter zugreifen mit: index, arguments oder auch i.

Weitere Details hier (engl.) oder auf diesem Block in Kategorie JUnit 5.

Ähnliche Artikel:

  1. חזרות Wiederholungen mit JUnit 5: @RepeatedTest
  2. Drei Gründe warum man keine JUnit-Tests schreiben sollte (Mindmap).
  3. Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

wallpaper-1019588
[Comic] Batman: City of Madness
wallpaper-1019588
Hyakushō Kizoku: Anime erhält eine dritte Staffel
wallpaper-1019588
Arcanadea: Figuren-Franchise erhält einen TV-Anime
wallpaper-1019588
Gintama: Neuer Teaser zum Spin-Off-Anime veröffentlicht