30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# Part 8: 测试指南
|
||
|
||
为保证 Ops 模块在高速演进过程中的稳定性,所有核心逻辑必须通过自动化测试覆盖。
|
||
|
||
## 8.1 单元测试规范
|
||
|
||
### 8.1.1 依赖模拟 (Mocking)
|
||
使用 `JUnit 5` 和 `Mockito`。推荐继承项目通用的测试基类或使用 `MockitoExtension`。
|
||
- **核心原则**:Mock 掉 Mapper 层和外部 RPC 调用,专注验证 Service 层的状态转换逻辑。
|
||
|
||
### 8.1.2 状态机测试
|
||
针对 `OrderStateMachine` 的每一次修改,必须确保:
|
||
1. **合法路径测试**:验证允许的状态转换(如 `ARRIVED` -> `COMPLETED`)能成功。
|
||
2. **非法路径测试**:验证不允许的转换(如 `PENDING` -> `COMPLETED`)必须抛出异常。
|
||
|
||
## 8.2 集成测试规范
|
||
|
||
### 8.2.1 混合队列验证
|
||
由于采用 Redis + MySQL 双写架构,集成测试需重点验证:
|
||
- 事务提交后,Redis 队列中的分数(Score)与优先级(Priority)是否匹配。
|
||
- `QueueSyncHandler` 是否正确处理了缓存失效后的补偿逻辑。
|
||
|
||
## 8.3 常用测试工具
|
||
|
||
- **Podam**:用于快速生成填充了随机数据的 DO/DTO 对象。
|
||
- **BaseDbAndRedisUnitTest**:支持 H2 内存数据库和内置 Redis 的集成测试基类。
|
||
|
||
---
|
||
**下一章**:[Part 9: 技术决策记录 (ADR)](./part9-技术决策记录.md)
|