0


java后端用mockito做单元测试,一直报错空指针问题【已解决】

项目场景:

写java后端,用mockito做单元测试


问题描述

跑测试代码的时候,一直报空指针错:
在这里插入图片描述
测试代码如下:

@RunWith(MockitoJUnitRunner.class)publicclassRuleServiceImplTest{@InjectMocksprivateRuleServiceImpl ruleService;@MockprivateRuleMapper mockRuleMapper;@Beforepublicvoidsetup(){MockitoAnnotations.initMocks(this);}@TestvoidaddRule(){RuleVO ruleVO1=newRuleVO(13,1,2,3,4,5,4,0);Rule rule1=newRule(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错,下午这几个小时就这样没了

在这里插入图片描述

标签: 单元测试 java

本文转载自: https://blog.csdn.net/m0_46271300/article/details/123881469
版权归原作者 lala2527 所有, 如有侵权,请联系我们删除。

“java后端用mockito做单元测试,一直报错空指针问题【已解决】”的评论:

还没有评论