环境搭建
为快速启动Mockito测试,本节详细说明如何在不同构建工具中配置Mockito与JUnit 5,并验证环境是否正常工作。
1. 前置条件
- JDK版本:
- Mockito 5.x 需 JDK 11+
- Mockito 4.x 兼容 JDK 8+(适用于旧项目)
- 构建工具:
- Maven 3.6+ 或 Gradle 7.x+
- IDE支持:
- IntelliJ IDEA / Eclipse / VS Code(需安装Java插件)
2. Maven 配置
在 pom.xml
中添加以下依赖:
<properties><junit-jupiter.version>5.10.0</junit-jupiter.version><mockito.version>5.12.0</mockito.version>
</properties><dependencies><!-- JUnit 5 核心依赖 --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>${junit-jupiter.version}</version><scope>test</scope></dependency><!-- Mockito 核心库 --><dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>${mockito.version}</version><scope>test</scope></dependency><!-- Mockito 对 JUnit 5 的扩展支持 --><dependency><groupId>org.mockito</groupId><artifactId>mockito-junit-jupiter</artifactId><version>${mockito.version}</version><scope>test</scope></dependency>
</dependencies>
3. Gradle 配置
在 build.gradle
中添加:
dependencies {// JUnit 5testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0'// MockitotestImplementation 'org.mockito:mockito-core:5.12.0'testImplementation 'org.mockito:mockito-junit-jupiter:5.12.0'
}test {useJUnitPlatform() // 启用JUnit 5测试引擎
}
4. IDE 配置验证
IntelliJ IDEA
- 创建测试类:右击源码目录 →
New → Java Class
→ 类名以Test
结尾(如UserServiceTest
)。 - 自动导入Mockito:
- 输入
mock(List.class)
→ 按Alt+Enter
自动导入org.mockito.Mockito.mock
。
- 输入
- 运行测试:点击测试方法旁的绿色箭头。
Eclipse
- 安装JUnit 5插件:
Help → Eclipse Marketplace → 搜索 "JUnit 5" → 安装 "JUnit 5 Support"
。
- 创建测试类:
File → New → JUnit Test Case
→ 选择JUnit 5。
5. 环境验证测试
创建第一个Mockito测试类,验证环境是否正常:
import org.junit.jupiter.api.Test;
import java.util.List;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;class EnvironmentValidationTest {@Testvoid testMockitoBasicFunctionality() {// 1. 创建Mock对象List<String> mockList = mock(List.class);// 2. 配置方法桩(Stubbing)when(mockList.size()).thenReturn(100);// 3. 调用被测方法int size = mockList.size();// 4. 断言验证assertEquals(100, size, "Mock对象的size()应返回预设值100");// 5. 行为验证verify(mockList).size(); // 验证size()被调用一次}
}
预期结果:测试通过,无错误日志。
6. 常见问题排查
问题现象 | 原因与解决方案 |
---|---|
NoSuchMethodError | 依赖版本冲突 → 统一JUnit 5和Mockito版本(如Mockito 5.x + JUnit 5.x)。 |
@Mock注解无效 | 未启用Mockito扩展 → 在测试类上添加 @ExtendWith(MockitoExtension.class) 。 |
Gradle测试未执行 | 未配置JUnit平台 → 确保build.gradle 中包含 test { useJUnitPlatform() } 。 |
静态导入失败 | 手动添加静态导入:import static org.mockito.Mockito.*; 和 import static org.junit.jupiter.api.Assertions.*; 。 |
7. 进阶配置(可选)
- 启用严格Mock模式:
在测试类初始化时添加以下代码,检测冗余的Mock配置:@BeforeEach void setup() {Mockito.lenient().when(...); // 显式标记允许宽松配置 }
- 多模块项目配置:
在父模块的pom.xml
中统一管理Mockito版本:<dependencyManagement><dependencies><dependency><groupId>org.mockito</groupId><artifactId>mockito-bom</artifactId><version>5.12.0</version><type>pom</type><scope>import</scope></dependency></dependencies> </dependencyManagement>
8. 验证成功标志
- 测试控制台输出绿色成功标记(IDE或构建工具)。
- Maven执行命令验证:
mvn clean test -Dtest=EnvironmentValidationTest
- Gradle执行命令验证:
./gradlew test --tests EnvironmentValidationTest
完成环境搭建后,即可进入核心API学习,开始编写真实的单元测试用例。