Files
makemd/serverjava/docs/04_Test_Guide.md
wurenzhi e47beffaf9 feat: 重构前端代码结构并添加Java后端支持
- 重构前端导入和组件结构,优化代码组织
- 添加Java后端基础框架和API实现
- 修复类型定义和接口兼容性问题
- 新增测试页面和工具函数
- 优化国际化支持和错误处理
- 更新依赖配置和构建脚本

新增Java后端模块:
- 实现基础认证、订单、支付等服务
- 添加Swagger API文档支持
- 配置数据库连接和缓存
- 实现国际化消息处理
- 添加安全过滤器和限流控制
2026-03-30 16:51:18 +08:00

183 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 测试指南
## 1. 测试概述
Crawlful Hub 项目采用了全面的测试策略,包括单元测试、集成测试和系统测试,确保系统的稳定性和可靠性。本指南详细介绍了项目的测试方法和测试策略。
## 2. 测试环境
### 2.1 硬件要求
- **CPU**: 至少 2 核
- **内存**: 至少 4GB
- **磁盘**: 至少 50GB 可用空间
### 2.2 软件要求
- **Java**: JDK 17 或更高版本
- **MySQL**: 8.0 或更高版本
- **Redis**: 6.0 或更高版本
- **Maven**: 3.6 或更高版本
- **JUnit 5**: 项目集成的测试框架
## 3. 测试类型
### 3.1 单元测试
单元测试是对系统中最小的可测试单元进行测试,通常是对单个方法或类的测试。单元测试的目的是验证每个单元是否按照预期工作。
**核心测试类**
- `AuthServiceTest.java`:测试认证服务的功能
- `OrderServiceTest.java`:测试订单服务的功能
- `ProductServiceTest.java`:测试商品服务的功能
### 3.2 集成测试
集成测试是对系统中多个组件的交互进行测试,验证组件之间的协作是否正确。集成测试的目的是确保系统的各个组件能够正确地协同工作。
**核心测试类**
- `SystemIntegrationTest.java`:测试整个系统的集成功能
### 3.3 系统测试
系统测试是对整个系统的功能进行测试,验证系统是否满足需求规格。系统测试的目的是确保系统能够按照预期工作,满足用户的需求。
**测试方法**
- 使用 API 文档测试 API 接口
- 使用健康检查端点测试系统状态
- 使用监控端点测试系统性能
## 4. 测试工具
### 4.1 JUnit 5
JUnit 5 是 Java 中最流行的测试框架用于编写和运行单元测试。Crawlful Hub 项目使用 JUnit 5 进行单元测试和集成测试。
### 4.2 Mockito
Mockito 是一个用于 Java 的 mocking 框架用于创建和配置模拟对象。Crawlful Hub 项目使用 Mockito 模拟依赖对象,便于单元测试。
### 4.3 Spring Test
Spring Test 是 Spring 框架提供的测试工具,用于测试 Spring 应用。Crawlful Hub 项目使用 Spring Test 测试 Spring 组件。
### 4.4 Postman
Postman 是一个用于测试 API 的工具,用于发送 HTTP 请求并查看响应。Crawlful Hub 项目使用 Postman 测试 API 接口。
## 5. 测试执行
### 5.1 运行单元测试
1. 进入项目目录:
```bash
cd d:\trae_projects\makemd\makemd\serverjava
```
2. 执行单元测试:
```bash
mvn test
```
### 5.2 运行集成测试
1. 进入项目目录:
```bash
cd d:\trae_projects\makemd\makemd\serverjava
```
2. 执行集成测试:
```bash
mvn verify -Pintegration-test
```
### 5.3 运行系统测试
1. 启动系统:
```bash
java -jar target/serverjava-0.0.1-SNAPSHOT.jar
```
2. 使用 Postman 测试 API 接口:
- 访问 `http://localhost:3001/api/api-docs`,获取 API 文档
- 使用 Postman 发送请求,测试 API 接口
3. 使用健康检查端点测试系统状态:
- 访问 `http://localhost:3001/api/v1/monitoring/health`
4. 使用监控端点测试系统性能:
- 访问 `http://localhost:3001/api/v1/monitoring/metrics`
## 6. 测试策略
### 6.1 测试覆盖率
Crawlful Hub 项目的测试覆盖率目标是:
- **单元测试覆盖率**:至少 80%
- **集成测试覆盖率**:至少 60%
- **系统测试覆盖率**:至少 40%
### 6.2 测试用例设计
测试用例设计遵循以下原则:
- **边界值测试**:测试边界条件,如空值、最大值、最小值等
- **等价类测试**:测试等价类,如有效输入、无效输入等
- **异常测试**:测试异常情况,如参数错误、系统错误等
- **场景测试**:测试实际场景,如用户注册、登录、下单等
### 6.3 测试数据
测试数据的设计遵循以下原则:
- **真实数据**:使用真实的业务数据进行测试
- **边界数据**:使用边界值进行测试
- **异常数据**:使用异常数据进行测试
- **覆盖所有场景**:确保测试数据覆盖所有业务场景
## 7. 测试报告
### 7.1 单元测试报告
运行单元测试后Maven 会生成单元测试报告,位于 `target/surefire-reports` 目录。
### 7.2 集成测试报告
运行集成测试后Maven 会生成集成测试报告,位于 `target/failsafe-reports` 目录。
### 7.3 代码覆盖率报告
使用 JaCoCo 插件生成代码覆盖率报告,位于 `target/site/jacoco` 目录。
## 8. 测试最佳实践
### 8.1 单元测试最佳实践
- **测试单个方法**:每个单元测试只测试一个方法
- **使用断言**:使用断言验证测试结果
- **模拟依赖**:使用 Mockito 模拟依赖对象
- **测试边界条件**:测试边界值和异常情况
- **保持测试简单**:测试代码应该简洁明了
### 8.2 集成测试最佳实践
- **测试组件交互**:测试组件之间的协作
- **使用真实依赖**:使用真实的依赖对象
- **测试业务流程**:测试完整的业务流程
- **保持测试独立**:每个集成测试应该独立运行
### 8.3 系统测试最佳实践
- **测试完整功能**:测试系统的完整功能
- **使用真实环境**:使用真实的环境进行测试
- **测试用户场景**:测试实际的用户场景
- **性能测试**:测试系统的性能
## 9. 测试自动化
Crawlful Hub 项目使用 Maven 进行测试自动化,配置了以下测试目标:
- **mvn test**:运行单元测试
- **mvn verify**:运行单元测试和集成测试
- **mvn clean package**:构建项目并运行测试
## 10. 总结
本测试指南详细介绍了 Crawlful Hub 项目的测试方法和测试策略。通过本指南,您可以了解如何编写和运行测试,确保系统的稳定性和可靠性。