当前位置:网站首页 > C++编程 > 正文

mockito 静态方法(mockito 静态方法donothing)



mockito库并不能mock静态方法,需要依赖powermock

包括静态方法测试,私有方法测试等,以及方法执行的坑或者模拟不成功解决

依赖:这个很重要,不同版本用法也有点区别:

接下来就是mock测试了,使用完全模拟测试过程,对于需要测试接口中调用的静态,私有方法等,返回自己想要的预期结果,达到测试效果:

这里有几个要点:

测试过程中完全手动mock,不会真实调用或者产生数据

一 mock对象

二 属性注入

将service等类中需要的其他service或者mapper等mock出来,然后分别使用工具类注入,名称保持一致即可

三 静态方法mock

模拟静态方法返回结果需要使用PowerMockit,测试类上必须加注解@PrepareForTest

四 私有方法

私有方法首先需要在类上加入注解,对于要测试的类中的public方法同样有效,比如测试方法中包含一个public方法,可以同样模拟:

然后对象不能mock,必须new一个,并且需要用spy处理:

接着使用doreturn .when这种形式模式,不能使用先when后return这种,会报错

注意一点,模拟参数要么全部模拟,要么全部自定义,不能混搭

这里有个大坑,如果出现私有方法还是进去执行的情况,很大可能是参数不对,比如你mock的参数是 anyString(),那么你真是测试时候传递的必须是一个String实例,不能是null,否则mock就会失败,我这里之前一直是对象的一个属性,直接new了一个对象传递

所以一直不成功:

比如 方法需要的是user.getId() ,而且你mock的是一个anyInt(),那么真正传递的时候必须给这个user,setId(9527),否则就无法达成预期的模拟效果,所有方法都一样!!

五 预期结果

verify :判断方法执行了几次: 确定测试是否通过

例如:verify(userService, times(1)).queryUser(any(anyInt(),anyString(),anyString());

1 依赖

2 创建测试基类

3 创建特定的测试类

4 模拟私有方法和静态方法

注意:

如果是分模块项目,springboot项目的启动类只能有一个,即需要把其他service,dao,common模块的启动类的启动注解给注释掉,否则测试启动会报错

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

到此这篇mockito 静态方法(mockito 静态方法donothing)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • awvs官网下载(awcc官网下载)2025-01-14 16:36:06
  • C加加编程入门课程(c加加程序编程代码大全)2025-01-14 16:36:06
  • console翻译成中文(consoles翻译)2025-01-14 16:36:06
  • cap安卓解析工具(解析安卓app)2025-01-14 16:36:06
  • twincat2扫描不到plc(twincat无法扫描设备)2025-01-14 16:36:06
  • pyc文件是什么(pyc文件是什么文件)2025-01-14 16:36:06
  • m.2擦写次数(mlc可擦写次数)2025-01-14 16:36:06
  • auto翻译成英文(automatic翻译成中文)2025-01-14 16:36:06
  • ceph存储(ceph存储原理)2025-01-14 16:36:06
  • msvcp140d.dll丢失(msvcp140.dll丢失的解决方法视频)2025-01-14 16:36:06
  • 全屏图片