在现代 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>