JUpiter @Test无法从H2嵌入式数据库中获取数据

时间:2019-12-29 15:27:36

标签: spring-data-jpa h2 spring-boot-test junit-jupiter

我正在使用嵌入式数据库H2作为测试数据库。我为数据源配置创建了application-test.properties文件,并在test/resources文件夹中为H2初始数据创建了data.sql文件。但是当我调用categoryRepository.findAll()时在测试方法中,它返回空列表。我使用JUpiter版本。

#CategoryRepositoryTest.class
@DataJpaTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
@AutoConfigureTestDatabase(replace = Replace.NONE)
public class CategoryRepositoryIntegrationTest {

    @Autowired
    private CategoryRepository categoryRepository;

    @Test
    void findAllCategories_notNull() {
        List<Category> listCategories = this.categoryRepository.findAll();
        assertThat(listCategories).isNotEmpty();
    }
}

#application-test.properties
spring.main.banner-mode=off
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:h2:mem:IBADBIDMB;DB_CLOSE_DELAY=-1
spring.datasource.hikari.minimumIdle=3
spring.datasource.hikari.maximumPoolSize=40
spring.datasource.hikari.idleTimeout=30000
spring.datasource.hikari.poolName=SpringBootJPAHikariCP
spring.datasource.hikari.driver-class-name=org.h2.Driver
spring.jpa.hibernate.ddl-auto=create
spring.jpa.database=h2
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect


#data.sql
insert into category(id,name,title,display_order) values (1,'mobile','Mobile',1);
insert into category(id,name,title,display_order) values (2,'internet','Internet',2);

0 个答案:

没有答案