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