JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge (Pseudozufall) ausgeführt werden?

Erstellt am 9. März 2019 von It_berater

Wie können die Testmethoden einer Klasse automatisch in zufälliger Reihenfolge ausgeführt werden? Ab JUnit 5.4 geht das mit der Annotation @TestMethodOrder. Es wird nur die @TestMethodOrder(MethodOrderer.Random.class) Annotation an der jeweiligen Test-Klasse benötigt. Die Zufallsfunktion wird mit Hilfe der System.nanoTime() Funktion erzeugt. Also ein Pseudozufall. Aber für Test reicht es.

Wir verwenden diese Testklasse:

import org.junit.jupiter.api.MethodOrderer.Random;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

/**
 * Test der Order Annotationen.
 * 
 * @author Thomas Wenzlaff
 *
 */
@TestMethodOrder(Random.class)
class OrderTest {

	@Test
	void aMethode() {
		System.out.println("a Methode im Code");
	}

	@Test
	void cMethode() {
		System.out.println("c Methode im Code");
	}

	@Test
	@Order(30)
	void bMethote() {
		System.out.println("b Methode im Code ");
	}
}

Und nun führen wir diese Klasse zweimal aus:

Die Methoden wurden in der Reihenfolge bca ausgeführt und beim zweiten mal

in der Reihenfolge cba.

Ähnliche Artikel:

  1. JUnit Quickie: Wie können die Testmethoden einer Klasse automatisch in alphabetischer Reihenfolge ausgeführt werden?
  2. JUnit Tests nun mit Methoden Reihenfolge via @Order Annotation möglich
  3. Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)