mockito怎么mock viod方法
时间: 2024-06-14 14:05:42 浏览: 9
在Mockito中,要mock一个void方法,可以使用`doNothing()`方法。下面是一个示例:
```java
import org.junit.Test;
import org.mockito.Mockito;
public class ExampleTest {
@Test
public void testMockVoidMethod() {
// 创建mock对象
Example example = Mockito.mock(Example.class);
// mock void方法
Mockito.doNothing().when(example).voidMethod();
// 调用被mock的void方法
example.voidMethod();
// 验证方法是否被调用
Mockito.verify(example).voidMethod();
}
}
```
在上面的示例中,我们首先创建了一个`Example`类的mock对象。然后使用`doNothing()`方法来mock`voidMethod()`方法,表示当调用该方法时不做任何操作。接下来,我们调用被mock的`voidMethod()`方法,并使用`verify()`方法来验证该方法是否被调用。
相关问题
mockito void方法
Mockito 可以用来 mock void 方法。具体的操作步骤如下:
1. 创建被 mock 的对象
```
SomeClass someObj = Mockito.mock(SomeClass.class);
```
2. 设置 void 方法的行为
```
Mockito.doNothing().when(someObj).voidMethod();
```
或者
```
Mockito.doThrow(new Exception()).when(someObj).voidMethod();
```
3. 执行被 mock 对象的 void 方法
```
someObj.voidMethod();
```
这样就可以 mock void 方法了。注意,在设置 void 方法的行为时,可以选择让它什么都不做或者抛出异常。
mockito void静态方法
Mockito 是一种 Java 测试框架,可以用于模拟对象和行为,以便更容易地编写单元测试。Mockito 支持模拟静态方法,但要注意的是,它只能用于模拟非 final 的静态方法。
下面是一个使用 Mockito 模拟静态方法的示例:
```java
public class MyClass {
public static void myMethod(String arg) {
// 静态方法的实现
}
}
@Test
public void testMyClass() {
PowerMockito.mockStatic(MyClass.class);
Mockito.doNothing().when(MyClass.class);
MyClass.myMethod(Mockito.anyString());
// 调用 MyClass.myMethod() 时,不会执行实际的实现,而是执行模拟的行为
MyClass.myMethod("test");
PowerMockito.verifyStatic(Mockito.times(1));
MyClass.myMethod("test");
}
```
在这个示例中,我们使用 PowerMockito.mockStatic() 方法来模拟 MyClass 类的静态方法。然后,使用 Mockito.doNothing() 方法来指定当调用 MyClass.myMethod() 时不执行任何操作。
最后,使用 PowerMockito.verifyStatic() 方法来验证 MyClass.myMethod() 方法被调用了一次,且参数为 "test"。这样就可以完成对静态方法的模拟和测试了。
需要注意的是,使用 PowerMockito 来模拟静态方法需要添加 PowerMockito 的依赖,并设置 Mockito 的运行器和 PowerMockito 的运行器。在使用时应该避免滥用静态方法的模拟,否则可能会导致测试代码的可读性和可维护性下降。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)