mockito 静态方法
时间: 2023-09-26 19:13:21 浏览: 102
在使用 Mockito 进行单元测试时,Mockito 默认只能 Mock 非静态方法。但是,你仍然可以通过使用 PowerMock 或者 Mockito+MockitoExtension 来 Mock 静态方法。
下面是使用 PowerMock 的示例代码:
首先,你需要添加 PowerMock 和 Mockito 的依赖到你的项目中。例如,如果你使用的是 Maven,可以在 pom.xml 中添加以下依赖:
```xml
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
```
接下来,在你的测试类中使用 `@RunWith` 注解来告诉 JUnit 使用 PowerMock 运行测试,并使用 `@PrepareForTest` 注解来指定需要 Mock 的类。然后,通过调用 `PowerMockito.mockStatic()` 方法来 Mock 静态方法。
```java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(YourClassWithStaticMethod.class)
public class YourTestClass {
@Test
public void testYourMethod() {
PowerMockito.mockStatic(YourClassWithStaticMethod.class);
// 在这里编写你的测试逻辑
}
}
```
注意,`YourClassWithStaticMethod` 是你想要 Mock 的含有静态方法的类。
希望这个示例对你有帮助!如果你有任何其他问题,请随时提问。
阅读全文