我认为我对这个问题是正确的。找到有关Github的帖子并阅读Spring文档后:
如果要测试JPA应用程序,可以使用@DataJpaTest。默认情况下,它将配置一个内存嵌入式数据库,扫描@Entity类并配置Spring Data
JPA存储库。常规@Component bean将不会加载到ApplicationContext中。
我
PersonRepository被认为是常规的
@Component,因为它不是Spring Data JPA存储库(接口是)。因此,它没有被加载。
另一种解决方案是使用
@SpringBootTest而不是
@DataJpaTest。
这种解决方案的缺点是,它将在运行测试时加载 所有 上下文,并因此禁用测试切片。但是做吧。
仍在使用的另一个选项
@DataJpaTest是包括
@Repository过滤器注释,如下所示:
@DataJpaTest(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Repository.class))



