gpt4 book ai didi

java - 在没有@Repository 实现的情况下使用@NoRepositoryBean 运行 Spring 集成测试

转载 作者:行者123 更新时间:2023-11-30 12:04:41 25 4
gpt4 key购买 nike

我有一些模块,主要模块与数据存储无关。有一些子模块依赖于具有 JPA 和 Mongo 存储库实现的主模块。

  • Core-Module - 所有业务逻辑,@NoRepositoryBean 接口(interface)
  • Core-Mongo - 依赖于带有 Mongo 存储库/域的 Core-Module
  • Core-JPA - 依赖于具有 JPA 存储库/域的 Core-Module

本质上,我想做的是在 Core-Module 中进行集成测试,使用 H2 数据库来执行测试,而不是依赖于 @Repository实现。

我意识到我可以制作仅测试的@Repository 接口(interface),这可能是我必须走的路,但我想知道是否有更简单的方法。本质上,是否有一种方法可以在测试中“实例化”@NoRepositoryBean 或无需声明仅测试存储库的其他一些简单方法?

最佳答案

我刚刚检查了这个兴趣问题。我在我的测试项目 UserRepository 中标记了 @NoRepositoryBean,之后在测试中我无法 Autowiring 它。但是在文档中 spring-docs我找到了 java creation repositories process description,它工作得很好。在测试之前创建所需的存储库。一段测试代码示例:

  private UserRepository userRepository;

@Autowired
private EntityManager entityManager;

@Before
public void init() {
JpaRepositoryFactory factory = new JpaRepositoryFactory(entityManager);
userRepository = factory.getRepository(UserRepository.class);
}

关于java - 在没有@Repository 实现的情况下使用@NoRepositoryBean 运行 Spring 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56975495/

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