有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用@NoRepositoryBean运行Spring集成测试,没有@Repository实现

我有一种情况,我有几个模块,主要模块是数据存储不可知的。有一些子模块依赖于JPA和Mongo的存储库实现的主模块

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

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

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


共 (1) 个答案

  1. # 1 楼答案

    我刚刚检查了这个兴趣问题。我在测试项目UserRepository中用@NoRepositoryBean标记,之后在测试中我无法自动连接它。但是在文档spring-docs中,我找到了java创建存储库过程描述,它的工作非常完美。在测试之前,创建所需的存储库。 一段测试代码示例:

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