junit mock接口类
时间: 2023-09-27 13:09:01 浏览: 100
使用JUnit和Mockito进行单元测试时,有时需要模拟接口类。以下是一个简单的示例:
假设我们有一个接口类 `Calculator`,它有两个方法 `add` 和 `subtract`:
```java
public interface Calculator {
int add(int a, int b);
int subtract(int a, int b);
}
```
现在我们想测试一个使用 `Calculator` 接口的类,但是我们不想实际调用 `add` 和 `subtract` 方法,因为它们可能会调用其他依赖项并引起副作用。这时候就需要使用Mockito来模拟 `Calculator` 接口。
首先,我们需要创建一个模拟对象:
```java
Calculator calculator = Mockito.mock(Calculator.class);
```
然后,我们可以使用 `when` 方法设置当调用 `add` 方法时返回一个特定的值:
```java
when(calculator.add(2, 3)).thenReturn(5);
```
我们还可以使用 `verify` 方法验证方法是否被调用:
```java
verify(calculator).add(2, 3);
```
最后,我们可以在测试中使用模拟对象来测试我们的代码:
```java
@Test
public void testCalculator() {
Calculator calculator = Mockito.mock(Calculator.class);
when(calculator.add(2, 3)).thenReturn(5);
int result = myClass.calculate(calculator);
assertEquals(5, result);
verify(calculator).add(2, 3);
}
```
这是一个简单的例子,Mockito提供了更多的功能和选项,可以用于更复杂的测试场景。
阅读全文