小编典典

如何在SpringBootTest中的@DataJpaTest中导入配置类?

spring-boot

我有一个 SpringBoot应用程序 ,我有一个配置包

@Configuration
@EnableJpaAuditing
public class PersistenceConfig {
}

但是 PersistenceConfig 不会在 PersonRepositoryTest中获得

@RunWith( SpringRunner.class )
@DataJpaTest
public class PersonRepositoryTest {

    // Tests ...
}

但是,如果我从更改@DataJpaTest to @SpringBootTest,PersonRepositoryTest将选择配置。

我的 包裹结构

- main
    - java
        - config
              PersistenceConfig.java
        - domain
              Person.java
        - persistence
              PersonRepository.java
          Application.java // @SpringBootApplication

- test
    - java
        - persistence
              PersonRepositoryTest.java

Spring Boot 1.4中测试改进建议使用@DataJpaTest测试持久层

观察: 在Test类上同时做两个注释都不会导入配置@SpringBootTest @DataJpaTest

问题1: 在使用@DataJpaTest测试持久层时,如何 正确地 (Spring
Boot中的最佳实践方式)将config包导入到Tests中?

问题2:
使用@SpringBootTest可以接受吗?我知道@DataJpaTest还是对我的数据库(包括事务管理)进行明智的自动配置的元注释。但是,如果我不需要它怎么办?


阅读 608

收藏
2020-05-30

共1个答案

小编典典

一种解决方案是使用@Import来将您的配置导入到由完成的配置@DataJpaTest。这是我的理解@Import

@RunWith(SpringRunner.class)
@DataJpaTest
@Import(AuditConfiguration.class)
public class AuditTest {
}

AuditConfiguration使审计

@Configuration
@EnableJpaAuditing
public class AuditConfiguration {
}
2020-05-30