gpt4 book ai didi

spring-boot - 无法在单元测试中 Autowiring 存储库(多模块 Maven 项目)

转载 作者:行者123 更新时间:2023-12-05 05:15:18 24 4
gpt4 key购买 nike

我现在正在做一个 Spring Boot 项目。我想在扩展了 JpaRepository 的接口(interface)内测试自定义查询。这是我可以想出的代码:

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase
public class CffRepositoryTest {

@Autowired
private TestEntityManager entityManager;
@Autowired
private CffRepository cffRepository;

@Test
public void saveCffTest() {

}
}

问题是 CffRepository 不能被 autowired 因为找不到它的 Beans。我认为这是因为 CffRepository 与 MainApplication 在不同的模块中。这是我的项目结构:

Project structure

谁能帮我解决这个问题?

最佳答案

正如您提到的,问题是您在类路径中没有使用 @SpringBootApplication 注释的类,因此测试不知道从哪里获取 Spring 配置。

您可以做的一件简单的事情是在您的 /test 目录中包含一个 TestApplication 类:

@SpringBootApplication()
public class TestApplication {

public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}

作为奖励提示,您实际上不需要为您在生产中使用的所有功能启用自动配置。您可以仅使用测试所需的部件。

关于spring-boot - 无法在单元测试中 Autowiring 存储库(多模块 Maven 项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51739561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com