Wie kann eine Vaadin Spring Boot mit Hibernate Anwendung auf JUnit 5 für Eclipse Oxygene 3A umgestellt werden?
1. Deaktivieren wir die JUnit (4.12) Libs in der pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 |
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <!-- Kein JUnit 4 mehr für den Test--> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> </exclusions> </dependency> |
2. Fügen wir die nötigen JUnit 5 Libs in der pom.xml hinzu:
1 2 3 4 5 6 7 8 9 10 11 12 |
<!-- Alles für JUnit 5 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <!-- and the engine for surefire and failsafe --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> |
3. Wir fügen JUnit 5 dem Buildpfad hinzu:
4. Wir erzeugen eine neue Testklasse, und achten darauf, das „New JUnit Jupiter test“ markiert ist:
Dann implementieren wir den Test, und achten darauf, das keine alten importe auf JUnit 4.x sondern immer die jupiter Imports vorhanden sind, z.B.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; /** * Test des Zeilen Service mit JUnit 5. * * @author Thomas Wenzlaff * */ class ZeileServiceTest { @Test @DisplayName("Der Zeilen Service Test ini Test") void testZeileService() { ZeileService svr = new ZeileService(null, null, null); assertNotNull(svr); assertEquals("ZeileService", svr.toString()); } } |
5. Und jetzt wird es interessant, schreiben wir einen Test mit DB Test und gestarteten Spring Boot, das geht mit nur zwei Annotationen @ExtendWith(SpringExtension.class)
und @SpringBootTest mehr. Z.B.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; import de.wenzlaff.krankenhaus.model.Arzt; /** * Arzt Test mit DB und Repo. * * @author Thomas Wenzlaff * */ @ExtendWith(SpringExtension.class) @SpringBootTest class ArztRepositoryTest { @Autowired private ArztRepository arztRepository; @Test @DisplayName("Test mit Datenbank nach Name und Umlaute") void testGetArztByName() { List<Arzt> aerzte = arztRepository.getArztByName("Müller"); assertEquals(1, aerzte.size()); assertEquals("Müller", aerzte.get(0).getName()); } } |
6. Test laufen lassen: