【发布时间】:2017-09-28 01:53:00
【问题描述】:
我有一个 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
Testing improvements in Spring Boot 1.4 建议使用@DataJpaTest 测试持久层
观察: 在测试类上做两个注释仍然不导入配置 @SpringBootTest @DataJpaTest
问题 1: 使用 @DataJpaTest 测试持久层时 如何正确(Spring Boot 中的最佳实践方式)将配置包导入我的测试?
问题 2: 使用@SpringBootTest 是否可以接受?我知道@DataJpaTest 也是一个元注释,为我的数据库提供了合理的自动配置,包括事务管理。但是如果我不需要它怎么办?
【问题讨论】:
标签: spring unit-testing spring-boot configuration spring-data-jpa