mockito 使用教程以及示例
时间: 2023-06-28 10:09:08 浏览: 53
Mockito 是一个 Java 测试框架,用于模拟(mock)依赖项并使测试代码更简单和可读。它可以帮助您快速创建假的对象和模拟方法的行为。以下是 Mockito 的使用教程和示例。
### 安装 Mockito
在使用 Mockito 之前,您需要将其添加到您的项目中。如果您使用 Maven,则可以将以下依赖项添加到您的 pom.xml 文件中:
```xml
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</version>
<scope>test</scope>
</dependency>
```
如果您使用 Gradle,则可以将以下依赖项添加到您的 build.gradle 文件中:
```
testImplementation 'org.mockito:mockito-core:3.3.3'
```
### 创建 Mock 对象
要创建 Mock 对象,您可以使用 Mockito 的 `Mockito.mock()` 方法。该方法接受一个 Class 类型的参数,并返回一个空的 Mock 对象。例如,要为一个名为 `UserService` 的类创建 Mock 对象,您可以编写以下代码:
```java
UserService userService = Mockito.mock(UserService.class);
```
### 设置 Mock 对象的行为
创建 Mock 对象之后,您可以使用 Mockito 的 `when()` 方法设置 Mock 对象的行为。该方法接受一个方法调用,并返回一个 `Mockito.when()` 对象,您可以使用该对象设置方法调用的返回值。例如,要设置 `UserService` 类的 `getUserById()` 方法调用返回一个名为 `John` 的用户,您可以编写以下代码:
```java
User john = new User("John");
when(userService.getUserById(1)).thenReturn(john);
```
### 验证 Mock 对象的方法调用
Mockito 还提供了一种验证 Mock 对象的方法调用的方法。要验证方法调用,您可以使用 Mockito 的 `verify()` 方法。该方法接受一个 Mock 对象和一个方法调用,并验证该方法是否被调用。例如,要验证 `UserService` 类的 `getUserById()` 方法是否被调用,您可以编写以下代码:
```java
verify(userService).getUserById(1);
```
### 完整示例
下面是一个完整的 Mockito 示例。在这个例子中,我们将创建一个名为 `UserServiceTest` 的测试类,并使用 Mockito 创建一个名为 `userService` 的 Mock 对象。然后,我们将设置 `userService` 的 `getUserById()` 方法调用返回一个名为 `John` 的用户。最后,我们将使用 Mockito 验证 `userService` 的 `getUserById()` 方法是否被调用。
```java
import org.junit.Test;
import org.mockito.Mockito;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;
public class UserServiceTest {
@Test
public void testGetUserById() {
// Create the mock object
UserService userService = Mockito.mock(UserService.class);
// Set the mock object's behavior
User john = new User("John");
when(userService.getUserById(1)).thenReturn(john);
// Call the method being tested
User user = userService.getUserById(1);
// Verify the method was called
verify(userService).getUserById(1);
}
}
```