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:
<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:
<!-- 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:
Es sieht dann so aus:
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.
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.
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:
Ähnliche Artikel:
- JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
- JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen
- Wie schaltet man die einfache Tomcat Error Seite für Spring Boot bzw. Vaadin an / aus?