博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerMock+Junit测试小记
阅读量:6965 次
发布时间:2019-06-27

本文共 862 字,大约阅读时间需要 2 分钟。

intelli J开发工具,单元测试,利用Powermock模拟从数据库获取数据,还有测试验证私有变量的值。

  1. 模拟数据,因为不可能每次测试都要连接数据库,并且准备数据也很麻烦,所以利用Powermock来模拟数据获取,来测试程序逻辑单元的正确性。实例代码如下:

    List<_Agv> listAgvs = // 此处是从固定文件获取数据,并返回list;
    PowerMockito.when(T_Agv.getAllAgv()).thenReturn(listAgvs);// 这里T_Agv.getAllAgv原本是从数据库获取数据,这里模拟
    AgvHelper agvHelper = AgvHelper.getInstance();//在getInstance函数里用到了T_Agv.getAllAgv()函数

    备注:注意下,首先在测试类加上注解@RunWith(PowerMockRunner.class),另外因为模拟用到了类的静态方法,所以在类上或者方法上加注解@PrepareForTest(T_Agv.class)
  2. 验证私有变量的值

    就是在你的私有变量没有对外提供获取接口的情况下,通过Powermock的某些方法直接获取到私有变量,并验证结果。
    Whitebox.getField(AgvHelper.class, "agvMap").get(agvHelper);//三个参数分别是类、私有变量名、该类的对象,返回的结果是个object(如果该变量是基本数据类型,也有相应方法直接返回),然后转换一下即可
    Whitebox.getInternalState(agvHelper, "agvMap");//同上

    其他的Junit的一些方法就不记了,网上太多资料了,并且还是很简单的。最主要是你自己的验证方法和方式。另外IntelliJ有code coverage功能,可以查看自己测试的是否全面,还是很方便的。

转载于:https://blog.51cto.com/yuzhouzhiwai/2084607

你可能感兴趣的文章
[Springboot实战系列]整合ElasticSearch实现数据模糊搜索(Logstash同步Mysql数据)
查看>>
Android应用中,跳转到App的详细设置页面,设置权限页面
查看>>
vsCode源码学习—克隆代码并启动
查看>>
用Java代码批量重命名文件
查看>>
Python 学习笔记之——用 sklearn 对数据进行预处理
查看>>
anyRTC私有云解决方案
查看>>
程序员工资高,却有很多人想转行,理由很简单!
查看>>
react中使用less和全局样式
查看>>
抓包工具 Fiddler4 配置移动设备抓取 Https 请求
查看>>
零基础入门vscode插件开发(以console.log加前缀为例)
查看>>
区块链之跨链技术
查看>>
Linux mmap内存映射
查看>>
# python模拟各大网站登陆方式, 包括爬虫--你们要的全都有
查看>>
Mockito.mock() vs @Mock vs @MockBean
查看>>
iOS栈区 堆区等概念以及区别
查看>>
Webpack HMR 原理解析
查看>>
如何发现及替换不合适的索引
查看>>
Node之文件系统fs(fileSystem)
查看>>
一文带您了解GMQ Token
查看>>
有愚人节活动?微软营销长备忘录:不要惨与
查看>>