Java 当我从junit调用存储库时,它是空的

Java 当我从junit调用存储库时,它是空的,java,junit,Java,Junit,我正在尝试创建junit,我正在尝试 调用himm中调用存储库的服务。 这个报告是空的。 我首先搜索并发现我需要包含此注释 @DataJpaTest @RunWith(SpringRunner.class) @SpringBootTest(classes = CommonSubsequenceApplication.class). 但这给我带来了另一个错误:为测试类找到了@Bootsrap的多个声明。 如果我删除了@DataJpaTest,我就不会有这个错误,我会得到在有任何注释之前的错误

我正在尝试创建junit,我正在尝试 调用himm中调用存储库的服务。 这个报告是空的。 我首先搜索并发现我需要包含此注释

@DataJpaTest 
@RunWith(SpringRunner.class) 
@SpringBootTest(classes = CommonSubsequenceApplication.class).
但这给我带来了另一个错误:为测试类找到了@Bootsrap的多个声明。 如果我删除了
@DataJpaTest
,我就不会有这个错误,我会得到在有任何注释之前的错误。。存储库为空

    @DataJpaTest 
    @RunWith(SpringRunner.class) 
    @WebMvcTest(value = SubsequenceController.class)
    @SpringBootTest(classes = CommonSubsequenceApplication.class)
    class SubsequenceServiceTest {
        
        SubsequenceService subsequenceService = new SubsequenceService();
    
    
        @Test
        public void addSubsequenceTest8() throws Exception {
            assertEquals("Success", subsequenceService.addSubsequence("xenis",new Subsequence( 2l,"Xenis", "Learn to dance", "No subsequences", new Date(), 0)));
        }

}

我想问题是您自己实例化了
子序列服务

SubsequenceService subsequenceService = new SubsequenceService();
这样Spring就没有机会进行依赖注入。 注入
子序列服务本身就可以做到这一点

@Autowired
private SubsequenceService subsequenceService

编辑 …现在,即使服务不工作,也为空

哦,我明白了!这应该是因为
@DataJpaTest
@WebMvcTest
注释。这些注释是减少加载到
ApplicationContext
中的bean数量的测试片段。基本上说,您只想加载与web层和持久化层相关的bean。这排除了使用简单的
@服务注释的所有bean。

通过删除测试类上的这两个注释,项目中的所有bean都应该加载到
ApplicationContext

欢迎使用堆栈溢出。请学习如何使用堆栈溢出,并阅读如何提高问题的质量。那么,你的问题是把你所有的源代码作为一个完整的源代码,它可以被其他人编译和测试。谢谢,我真的很感激,但是现在连服务都不起作用了,是吗null@HerrArhone我编辑了我的答案。希望这对你有帮助!嗯,我似乎已经找出了问题所在,您的响应帮助,但我还必须添加这个@SpringBootTest。