mockito无返回值方法单元测试
时间: 2024-09-13 16:13:36 浏览: 77
基于Springboot+Junit+Mockito做单元测试的示例
5星 · 资源好评率100%
Mockito是一个流行的模拟框架,它允许你在单元测试中创建和配置模拟对象。对于无返回值的方法(void方法),Mockito提供了一些特定的方式来验证它们的行为。
在使用Mockito测试无返回值方法时,你可以使用`doNothing()`、`doThrow()`和`doAnswer()`等方法。下面是一些基本的示例:
1. `doNothing()`:当你想要模拟void方法不执行任何操作时,可以使用`doNothing()`。这对于测试void方法没有副作用的情况非常有用。
```java
// 创建模拟对象
MyClass mockObj = mock(MyClass.class);
// 当调用void方法时,不执行任何操作
doNothing().when(mockObj).myVoidMethod();
// 调用void方法
mockObj.myVoidMethod();
// 验证void方法被调用了一次
verify(mockObj, times(1)).myVoidMethod();
```
2. `doThrow()`:如果你需要测试void方法在执行时抛出异常的情况,可以使用`doThrow()`。
```java
// 创建模拟对象
MyClass mockObj = mock(MyClass.class);
// 当调用void方法时,抛出指定的异常
doThrow(new RuntimeException("Method execution failed")).when(mockObj).myVoidMethod();
// 调用void方法(应该抛出异常)
mockObj.myVoidMethod();
```
3. `doAnswer()`:如果你需要在void方法被调用时执行一些特定的逻辑,可以使用`doAnswer()`。
```java
// 创建模拟对象
MyClass mockObj = mock(MyClass.class);
// 当调用void方法时,执行指定的逻辑
doAnswer(invocation -> {
// 在这里编写void方法被调用时你想要执行的代码
System.out.println("Method was called");
return null;
}).when(mockObj).myVoidMethod();
// 调用void方法
mockObj.myVoidMethod();
// 验证void方法被调用了一次
verify(mockObj, times(1)).myVoidMethod();
```
使用这些方法可以帮助你验证void方法的行为是否符合预期。
阅读全文