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