项目场景:
写java后端,用mockito做单元测试
问题描述
跑测试代码的时候,一直报空指针错:
测试代码如下:
@RunWith(MockitoJUnitRunner.class)
public class RuleServiceImplTest {
@InjectMocks
private RuleServiceImpl ruleService;
@Mock
private RuleMapper mockRuleMapper;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}
@Test
void addRule() {
RuleVO ruleVO1=new RuleVO(13,1,2,3,4,5,4,0);
Rule rule1=new Rule(ruleVO1);
Mockito.when(mockRuleMapper.insert(rule1)).thenReturn(1); #报错行
Assert.assertEquals(resultVO1.getCode(), Constant.REQUEST_SUCCESS);
}
}
debug发现 ruleService 和 mockRuleMapper 为空:
一开始以为是测试代码哪写错了,作为一个后端小白,在网上搜索相关bug解决办法,乃至询问身边写过测试的人,前前后后弄了好几个小时,还是一直报错空指针
原因 & 解决方案:
最后仔细对比,我才发现是import的时候出了问题,在写到注释@Test的时候,idea自动帮我import了,结果import错了
错误版本:
正确版本:
反思:
首先是经验太少(cai 了,这种错误竟然都没有发现,其次是太相信idea了,完全没想到会import错,下午这几个小时就这样没了文章来源:https://www.toymoban.com/news/detail-521784.html
文章来源地址https://www.toymoban.com/news/detail-521784.html
到了这里,关于java后端用mockito做单元测试,一直报错空指针问题【已解决】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!