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