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