powermockito模拟静态void方法
时间: 2023-08-04 16:14:45 浏览: 375
使用 PowerMockito 模拟静态 void 方法可以分为以下几个步骤:
1. 添加 PowerMockito 的依赖库,例如:
```
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
```
2. 使用 `@RunWith(PowerMockRunner.class)` 注解指定使用 PowerMockRunner 进行单元测试。
3. 使用 `@PrepareForTest` 注解指定需要被 mock 的类或者接口。
4. 使用 `PowerMockito.mockStatic()` 方法来 mock 静态方法。
5. 使用 `PowerMockito.doNothing()` 方法来指定静态 void 方法的行为。
下面是一个示例:
```
@RunWith(PowerMockRunner.class)
@PrepareForTest({StaticClass.class})
public class StaticClassTest {
@Test
public void testStaticMethod() {
PowerMockito.mockStatic(StaticClass.class);
PowerMockito.doNothing().when(StaticClass.class);
StaticClass.staticVoidMethod();
// 调用被 mock 的静态 void 方法
StaticClass.staticVoidMethod();
// 验证静态 void 方法被调用了两次
PowerMockito.verifyStatic(Mockito.times(2));
StaticClass.staticVoidMethod();
}
}
```
注意,这里使用了 `Mockito.times(2)` 来验证静态 void 方法被调用了两次。同时,为了避免与其他测试类的影响,建议在每个测试方法中都重新 mock 一次。
阅读全文