Wie kann eine Vaadin Spring Boot Anwendung in 15 Minuten auf JUnit 5 umgestellt werden?

Erstellt am 23. Juni 2018 von It_berater

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:

  1. JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
  2. JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen
  3. Wie schaltet man die einfache Tomcat Error Seite für Spring Boot bzw. Vaadin an / aus?