Mockito如何thenReturn Interface接口
时间: 2024-03-05 15:54:40 浏览: 235
如果需要使用Mockito模拟一个接口并返回该接口的实例对象,可以使用`Mockito.mock()`方法创建该接口的mock对象,并使用`Mockito.when()`方法设置该mock对象的行为。
例如,假设有一个接口`MyInterface`,我们需要模拟它并在调用某个方法时返回该接口的实例对象,可以按照以下步骤进行:
1. 使用`Mockito.mock()`方法创建该接口的mock对象:
```java
MyInterface myInterfaceMock = Mockito.mock(MyInterface.class);
```
2. 使用`Mockito.when()`方法设置该mock对象的行为,使其在调用某个方法时返回该接口的实例对象:
```java
Mockito.when(myInterfaceMock.someMethod()).thenReturn(Mockito.mock(MyInterface.class));
```
上述代码中,我们使用`Mockito.when()`方法设置`myInterfaceMock`对象在调用`someMethod()`方法时返回一个新的接口`MyInterface`的mock对象。
注意,这里返回的是新的mock对象,而不是原始的接口实现类的实例对象。如果需要返回一个具体的接口实现类的实例对象,可以使用`Mockito.mock()`方法创建该实现类的mock对象,并在上述代码中返回该mock对象即可。
相关问题
Mockito模拟返回Interface
Mockito可以模拟返回一个接口的实例对象。假设有一个接口`MyInterface`,我们可以使用Mockito的`mock()`方法创建一个该接口的实例对象,如下所示:
```java
MyInterface myInterface = Mockito.mock(MyInterface.class);
```
可以在测试中使用该实例对象,并设置它的行为,例如:
```java
Mockito.when(myInterface.someMethod()).thenReturn("mocked result");
```
这将模拟`MyInterface`接口中的`someMethod()`方法,并将其返回值设置为`"mocked result"`。
mockito 模拟redis
Mockito是一个流行的行为驱动开发测试框架,主要用于单元测试,它允许开发者模拟(mock)或验证对象的行为。当涉及到像Redis这样的分布式缓存系统时,Mockito可以用于编写单元测试,尤其是在那些需要与Redis交互但又不想直接连接到实际Redis服务器的情况下。
在使用Mockito模拟Redis时,首先你需要创建一个Redis的Mock对象。这通常通过`Mockito.mock()`方法实现,给定Redis的接口或实现类。例如:
```java
import static org.mockito.Mockito.*;
// 假设有一个RedisClient接口
public interface RedisClient {
String get(String key);
void set(String key, String value);
}
// 创建RedisClient的Mock实例
RedisClient mockRedis = mock(RedisClient.class);
```
然后,你可以配置这个Mock对象的行为,如设置`when().get("key")`返回特定值,或者抛出异常等。这样,在测试代码中,当你调用`mockRedis.get("key")`时,Mockito会按照预先设定的规则执行。
```java
when(mockRedis.get("testKey")).thenReturn("mockValue");
```
阅读全文