使用 Mockito 快速构建 Mock 测试环境

在现代 Java 开发中,Mockito 是最主流也是最受欢迎的 Mock 框架之一。它提供了简洁、强大的 API 来模拟依赖对象的行为,帮助我们在不依赖真实环境的前提下高效地验证业务逻辑。本篇博客将深入讲解如何使用 Mockito 快速构建测试环境,包括原理、配置、常用用法、实际重构案例。


一、Mockito 是什么?

Mockito 是一个基于 Java 动态代理技术的 Mock 框架,允许开发者在测试中创建依赖类的“假对象”,用于模拟方法返回值、捕获调用行为,从而实现对类行为的单元级验证。

它的优势:

  • 简洁的 API
  • 无需手动创建 stub 类
  • 支持行为驱动开发(BDD)
  • 与 JUnit、Spring Boot 深度整合

二、原理解析:Mockito 如何工作?

Mockito 使用两种代理方式:

  • JDK 动态代理:作用于接口
  • CGLIB 字节码代理:作用于类

在运行时创建代理类,用来“拦截”被调用方法,根据预设返回结果或行为模拟。

例如:

Mockito.when(service.method()).thenReturn("mocked");

等价于:

如果 service.method() 被调用,返回 “mocked”。


三、快速配置 Mockito 测试环境

1. 添加依赖(Maven)

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>4.11.0</version>