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:
Das Ergebnis, es werden nur die zwei Methoden mit DB-Test Tag ausgeführt:
Ähnliche Artikel:
- Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?
- JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
- Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)