Es muss ja nicht immer Fussball und Weltmeisterschaft sein! Neue Annotation für JUnit 5 – Tags sind auch spannend!

Mit den neuen Tags (org.junit.jupiter.api.Tag) können Methoden und auch ganze Klassen getagt werden, um sie z.B. in Gruppen einzuteilen.
Eine Testgruppe könnte z.B. eine langlaufende DB Methoden sein, die nicht immer ausgeführt werden soll.

Ein Tag muss folgenden Syntax Regeln folgen:

-ein Tag darf nicht Leer sein
-ein Tag darf keine Leerzeichen enthalten
-ein Tag darf keine ISO Kontroll Zeichen enthalten
-ein Tag darf kein, (, ), %, | oder ! Zeichen enthalten

Eine Testklasse zur WM 2018 könnte so aussehen:

/**
 * Fusballer Test mit DB und Repo.
 * 
 * @author Thomas Wenzlaff
 *
 */
@ExtendWith(SpringExtension.class)
@SpringBootTest
class FusballerRepositoryTest {

	@Autowired
	private FusballerRepository fusballerRepository;

	@Tag("DB-Test")
	@Test
	@DisplayName("Test mit Datenbank nach Name und Umlaute")
	void testGetFusballerByName() {
		List<Fusballer> fussballer = fusballerRepository.getFusballerByName("Müller");
		assertEquals(1, fussballer.size());
		assertEquals("Müller", fussballer.get(0).getName());
	}

	@Tag("DB-Test-Langläufer")
	@Test
	@DisplayName("Test mit Datenbank max. Anzahl")
	void testGetFusballerMax() {
		List<Fusballer> fussballer = fusballerRepository.findAll();
		assertEquals(11, fussballer.size());

	}

	@Tag("DB-Test")
	@Test
	@DisplayName("Test mit Datenbank max. Count")
	void testGetFusballerCount() {
		assertEquals(11, fusballerRepository.count());
	}

}

Unter Eclipse kann man nun alle Tests ausführen lassen, ausser die mit DB-Test-Langläufer getagten Methode:

Es muss ja nicht immer Fussball und Weltmeisterschaft sein! Neue Annotation für JUnit 5 – Tags sind auch spannend!

Das Ergebnis, es werden nur die zwei Methoden mit DB-Test Tag ausgeführt:

Es muss ja nicht immer Fussball und Weltmeisterschaft sein! Neue Annotation für JUnit 5 – Tags sind auch spannend!

Ähnliche Artikel:

  1. Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?
  2. JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
  3. Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)