mockito想模拟被测试类中的某个方法时,该怎样写
时间: 2024-12-16 19:24:24 浏览: 14
Mockito+Junit5测试方法实践
5星 · 资源好评率100%
Mockito是一个流行的Java单元测试框架,用于编写简洁、易于理解的测试代码。当你想要在测试中模拟被测类(通常是业务逻辑层)的一个方法的行为时,你可以按照以下步骤操作:
1. **创建mock对象**:
首先,你需要创建一个该方法所属类的`Mockito.Mocked构造函数`或使用`Mockito.mock()`方法来创建mock对象。例如:
```java
MyService myService = Mockito.mock(MyService.class);
```
2. **指定方法行为**:
对于特定的方法,可以使用`when()`来设置期望的返回值、抛出异常或是行为模式(如`thenReturn()`, `doThrow()`, `doAnswer()`等)。例如,如果你想让它总是返回一个默认值:
```java
when(myService.someMethod()).thenReturn(defaultReturnValue);
```
或者让其抛出一个异常:
```java
doThrow(IllegalArgumentException.class).when(myService).someMethod();
```
3. **验证方法是否被调用**:
使用`verify()`方法检查被测试的方法是否按照预期被调用,包括调用次数、参数等。例如:
```java
verify(myService).someMethod(anyObject());
```
4. **清理资源**:
在测试完毕后,记得使用`verifyNoMoreInteractions()`来确认mock对象已经完成了所有预设的操作,防止遗漏的交互影响其他测试。
阅读全文