Powermockito一些遇到的坑
最近公司在使用powermockito进行白盒测试,在这一方面因为刚接触,避免不了要遇到一些坑(问题),这篇文章主要是记录下自己遇到的问题,以便后面可以查阅。
1、使用Powermockito检查某个静态方法调用的次数
1 PowerMockito.mockStatic(Static.class); 2 // use Mockito to set up your expectation 3 PowerMockito.when(Static.staticMethod(Mockito.anyString())).thenReturn("hello iWuYc"); 4 Static.staticMethod("iWuYc"); 5 Static.staticMethod("iWuYc"); 6 // Different from Mockito, always use PowerMockito.verifyStatic() first 7 // to start verifying behavior 8 PowerMockito.verifyStatic(Mockito.times(2)); 9 // IMPORTANT: Call the static method you want to verify 10 Static.staticMethod("iWuYc");
步骤:
- 记录需要mockito的静态类的静态方法
- 调用对应的静态方法,在代码中可以看到,4~5行调用了两次staticMethod方法
- 启用校验(代码中第8行)
- 再次调用需要校验的方法,进行实际的检查,看看是否符合第8行定义的规则。
注意:
在使用过程中,没有仔细看api文档,导致本人在使用中一直遇到问题。关键点是:先调用对应的静态方法,再启用静态检查,并定义规则,再次调用对应的静态方法,查看是否是通过校验的。
如果在第8行定义的times是3的话,这个时候,第10行调用会报错。