码迷,mamicode.com
首页 > 其他好文 > 详细

PowerMock+Junit测试小记

时间:2018-03-09 16:16:47      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:Powermock   Whitebox   单元测试   

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功能,可以查看自己测试的是否全面,还是很方便的。

PowerMock+Junit测试小记

标签:Powermock   Whitebox   单元测试   

原文地址:http://blog.51cto.com/yuzhouzhiwai/2084607

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!