首页 > 代码库 > Powermockito一些遇到的坑

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行调用会报错。

Powermockito一些遇到的坑