我有一个 SpringBoot应用程序 ,我有一个配置包
@Configuration @EnableJpaAuditing public class PersistenceConfig { }
但是 PersistenceConfig 不会在 PersonRepositoryTest中获得
@RunWith( SpringRunner.class ) @DataJpaTest public class PersonRepositoryTest { // Tests ... }
但是,如果我从更改@DataJpaTest to @SpringBootTest,PersonRepositoryTest将选择配置。
@DataJpaTest to @SpringBootTest
我的 包裹结构 是
- 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还是对我的数据库(包括事务管理)进行明智的自动配置的元注释。但是,如果我不需要它怎么办?
一种解决方案是使用@Import来将您的配置导入到由完成的配置@DataJpaTest。这是我的理解@Import。
@Import
@DataJpaTest
@RunWith(SpringRunner.class) @DataJpaTest @Import(AuditConfiguration.class) public class AuditTest { }
以AuditConfiguration使审计
AuditConfiguration
@Configuration @EnableJpaAuditing public class AuditConfiguration { }