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:
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?