| name | unit-testing-standards |
| description | 阿里巴巴Java开发手册 — 单元测试规约审查与指导。当用户涉及以下任何场景时触发:
- 编写单元测试、设计测试用例
- 测试覆盖率要求(语句覆盖、分支覆盖)
- 测试策略设计(AIR原则、BCDE原则)
- 数据库相关测试(数据准备、自动回滚)
- Mock使用、依赖注入设计
- 不可测代码重构
- 用户提到"单元测试"、"test"、"coverage"、"Junit"等关键词
此技能适用于所有编程语言,单元测试原则是通用的。
|
单元测试规约技能
作用
本技能基于《阿里巴巴Java开发手册》的单元测试章节,为开发者提供单元测试规范指导。
涵盖以下领域:
| 规约领域 | 说明 |
|---|
| AIR原则 | 自动化、独立性、可重复性 |
| BCDE原则 | 边界、正确、设计、错误 |
| 测试粒度 | 方法级别、类级别 |
| 覆盖率 | 语句覆盖70%、核心模块100% |
| 数据库测试 | 数据准备、自动回滚 |
| 可测试性 | 重构不可测代码 |
使用方法
- 测试代码审查 — 输入:测试类或被测类代码;执行:读取
references/testing-rules.md 后逐条检查 AIR 原则、覆盖率、边界条件;输出:按【强制】【推荐】【参考】分级的问题清单 + 正例参考
- 测试策略指导 — 输入:待测试的业务场景或功能描述;执行:引用 AIR 原则和 BCDE 原则;输出:测试用例设计方案 + 优先级建议
- 测试重构建议 — 输入:不可测的生产代码或测试代码;执行:分析可测试性瓶颈并引用规约;输出:重构方案 + 测试示例
测试审查检查点
执行单元测试规约审查时,以下场景需先向用户确认,再执行后续操作:
| 场景 | 检查内容 |
|---|
| 建议删除或重写测试代码 | 任何测试代码的删除/重写建议输出前,确认用户是否采纳并提醒备份 |
| 建议重构被测代码 | 为提升可测试性而修改生产代码前,确认用户接受范围并评估风险 |
| 用户未提供测试代码 | 提示用户粘贴测试类或被测类代码,说明本技能涵盖的审查范围 |
| 覆盖率不达标 | 提示当前覆盖率与目标差距,确认用户优先级(先补核心模块还是全面补齐) |
边界条件处理
| 场景 | 处理方式 |
|---|
| 用户未提供测试代码 | 提示用户粘贴测试类或被测类代码,说明可审查的维度(AIR原则、覆盖率、可测试性等) |
| 被测代码不可控(第三方库) | 建议通过适配器或防腐层封装,聚焦接口行为测试而非内部实现 |
| 测试框架非 JUnit | 测试原则通用适用,但具体断言语法和注解需按用户实际框架调整 |
| 遗留系统无测试 | 建议优先为核心业务路径补测试,不推荐一次性全面补全导致维护成本过高 |
| references 文件缺失 | 基于通用单元测试原则给出建议,提示检查 references 目录完整性 |
规约文件索引
references/
└── testing-rules.md # 单元测试规约全文
规约等级说明
原文中的规约分为三个等级:
- 【强制】:必须遵守
- 【推荐】:建议遵守
- 【参考】:供参考
审查输出格式
- 【强制】违规项
- 【推荐】改进项
- 【参考】优化建议
- 正例参考