0


mockito+junit 单元测试 测试私有方法利用反射去调用提升覆盖率 反射调用时传入参数为 null

今天公司安排我写单元测试 因为要通过三级认证 公司要求是覆盖率必须达到100%
而在写单元测试的时候 对于是否要测试私有方法一直是一个争议 公司规范 对私有方法也进行测试

代码如下:

privatevoidpostGpInfo(GpAlertInfoDO gpAlertInfoDO){if(JudgeUtils.isNull(gpAlertInfoDO)){BusinessException.throwBusinessException(ZB_SYS_ERROR);}GpZbAlertInfoBO alerInfo =newGpZbAlertInfoBO();}

JudgeUtils 是公司封装的一个工具类 让我们看看 isNull 方法的内部

代码如下:

publicstatic<T>booleanisNull(T t){returnnull== t;}

我现在需要使得 if 条件成立返回 true 提高覆盖率
在这种情况下 如何保证 isNull 方法的返回值为 true
解决方案 :可以进行打桩 或者让传入的参数为 null

前面说到了 公司要求对私有方法也进行测试 我的处理是通过反射进行一个调用 达到预期效果

代码如下:

ReflectionTestUtils.invokeMethod();

那怎么传 null 百度了一番之后发现没有人这样做过,可能因为这样做太过于奇葩。但是没办法现在就是要实现。于是在博主的各种实验下,终于发现了如下的放法可以传一个null的参数进去

传入 参数为 new Object[]{null} 即可

代码如下

ReflectionTestUtils.invokeMethod(gpAlertInfoServiceImpl,"postGpInfo",newObject[]{null})
标签: junit 单元测试 java

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

“mockito+junit 单元测试 测试私有方法利用反射去调用提升覆盖率 反射调用时传入参数为 null”的评论:

还没有评论