Mercurial > hg > SpringPlayground
view spring-boot-playground/src/test/java/de/comline/spring/service/MovieServiceTestWithInMemoryDatabase.java @ 8:7ce4367b50bc
Ein echter Unit Test, der eine in-memory H2 als Teil vom Test startet, das Schema mit liquibase erzeugt und nach dem Test wieder stoppt. Das alles ohne die Web Controller zu starten.
author | Dirk Olmes <dirk.olmes@codedo.de> |
---|---|
date | Thu, 13 Aug 2020 16:51:05 +0200 |
parents | |
children | f3f9102ef7c0 |
line wrap: on
line source
package de.comline.spring.service; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import de.comline.spring.entity.Movie; @SpringBootTest(classes = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, MovieService.class, }) @EnableJpaRepositories("de.comline.spring.repository") @EntityScan("de.comline.spring.entity") public class MovieServiceTestWithInMemoryDatabase { @Autowired private MovieService service; @Test @DisplayName("Test with a real movie repository") void withRealRepository() { String title = "the-movie-title"; Movie movie = service.createMovie(title); assertThat(movie.getTitle(), is(title)); assertTrue(movie.getId() > 0); } }