Mockito静态方法无返回值
时间: 2023-07-09 12:21:21 浏览: 706
Mockito 不支持直接 mock 静态方法,但是你可以使用 PowerMockito 来 mock 静态方法并指定它无返回值。以下是一个示例代码:
```
@RunWith(PowerMockRunner.class)
@PrepareForTest(YourClassWithStaticMethod.class)
public class YourTestClass {
@Test
public void testYourMethod() {
PowerMockito.mockStatic(YourClassWithStaticMethod.class);
doNothing().when(YourClassWithStaticMethod.class);
YourClassWithStaticMethod.yourStaticMethod(); // 调用静态方法
// 在这里进行你的测试
}
}
```
在这个示例中,我们使用 PowerMockito 的 `mockStatic()` 方法来 mock 静态类 `YourClassWithStaticMethod`,然后使用 `doNothing()` 方法来指定当这个静态方法被调用时什么也不做。最后,在测试代码中调用这个静态方法并进行你的测试。
需要注意的是,使用 PowerMockito 来 mock 静态方法会增加代码的复杂度,并且有可能会导致一些奇怪的问题。因此,应该尽量避免使用静态方法来编写可测试的代码。
相关问题
mockito静态方法无返回值
Mockito 不支持直接 mock 静态方法,但是你可以使用 PowerMockito 来 mock 静态方法并指定它无返回值。以下是一个示例代码:
```
@RunWith(PowerMockRunner.class)
@PrepareForTest(YourClassWithStaticMethod.class)
public class YourTestClass {
@Test
public void testYourMethod() {
PowerMockito.mockStatic(YourClassWithStaticMethod.class);
doNothing().when(YourClassWithStaticMethod.class);
YourClassWithStaticMethod.yourStaticMethod(); // 调用静态方法
// 在这里进行你的测试
}
}
```
在这个示例中,我们使用 PowerMockito 的 `mockStatic()` 方法来 mock 静态类 `YourClassWithStaticMethod`,然后使用 `doNothing()` 方法来指定当这个静态方法被调用时什么也不做。最后,在测试代码中调用这个静态方法并进行你的测试。
需要注意的是,使用 PowerMockito 来 mock 静态方法会增加代码的复杂度,并且有可能会导致一些奇怪的问题。因此,应该尽量避免使用静态方法来编写可测试的代码。
powermock静态方法无返回值
如果你想使用 PowerMock 来 mock 静态方法并且不需要返回值,可以使用 PowerMockito 的 `Mockito.doNothing()` 方法。这个方法可以让你指定在这个静态方法被调用时什么也不做,而不是抛出异常或返回任何值。以下是一个示例代码:
```
@RunWith(PowerMockRunner.class)
@PrepareForTest(YourClassWithStaticMethod.class)
public class YourTestClass {
@Test
public void testYourMethod() {
PowerMockito.mockStatic(YourClassWithStaticMethod.class);
Mockito.doNothing().when(YourClassWithStaticMethod.class);
YourClassWithStaticMethod.yourStaticMethod(); // 调用静态方法
// 在这里进行你的测试
}
}
```
在这个示例中,`YourClassWithStaticMethod` 是包含静态方法的类,我们使用 `PowerMockito.mockStatic()` 方法来 mock 这个类。然后使用 `Mockito.doNothing()` 方法来指定当这个静态方法被调用时什么也不做。最后,在测试代码中调用这个静态方法并进行你的测试。
阅读全文