SuperAPI AI 工具集

generate-test-cases

测试与质量

查看项目

更新于 10-15 14:57

技能介绍

用途

generate-test-cases 是一个测试用例规划技能。当用户要求分析代码的测试覆盖情况、列出需要编写哪些测试用例,或审查测试策略时使用。它只输出测试用例的描述列表,不生成实际的测试代码。

主要能力

  • 分析目标方法/类,生成应为其编写的测试用例列表。
  • 覆盖所有代码分支,包括:成功路径、错误/异常路径、校验逻辑、目标调用的私有/受保护方法、安全注解(如存在)。
  • 读取依赖类型(DTO、实体、枚举等),以获得完整上下文。
  • 检查已有测试类,若存在则只关注尚未覆盖的行为,避免重复。
  • 严格应用 INCLUDE/EXCLUDE 规则筛选测试用例。

使用方式

目标通过参数传入,例如:/generate-test-cases src/main/java/com/example/service/OrderService.java。

执行步骤:

  1. 读取 ./rules/general/ 目录下的规则文件,读取目标源码文件/类/方法,沿导入读取依赖类型,并搜索已有测试类。
  2. 分析所有代码分支,应用 INCLUDE/EXCLUDE 规则,按指定格式输出测试用例列表。

输出格式示例:

## Test Cases for {ClassName}.{methodName}

### 1. {testMethodName}
- **Given:** {preconditions/input state}
- **When:** {action being tested}
- **Then:** {expected outcome}
- **Code branch:** {which code path this covers}

测试方法命名格式:{testedMethod}_{givenState}_{expectedOutcome},例如:

  • calculateTotal_validProducts_returnsSum
  • calculateTotal_emptyList_throwsIllegalArgumentException
  • getUser_unauthorized_returns401
  • getUser_forbidden_returns403

完成后,技能会指明下一步:generate-tests <target> 可将该列表作为计划并据此编写代码;列表按原样交接,用户可先审阅或修改。

适用场景

  • 在编写测试代码之前,先规划需要覆盖哪些测试用例。
  • 审查现有测试策略,识别覆盖缺口。
  • 与 generate-tests 技能配合:本技能产出用例列表,后者据此生成测试代码。

限制

  • 只输出测试用例描述,不生成实际测试代码。
  • 若目标文件不存在,会告知用户搜索的确切路径并请求澄清。
  • 若目标代码语言没有特定规则,只应用通用规则并告知用户。
  • 若已有测试类已覆盖所有识别出的行为,会输出覆盖已完整的总结,列出已测试内容,不虚构额外测试用例。
  • 必须读取并应用 ./rules/general/ 下的规则文件,包括 test-case-generation-strategy、naming-conventions、general-principles、what-makes-good-test、keep-tests-focused、test-behaviors-not-methods、prefer-public-apis、cleanly-create-test-data、keep-cause-effect-clear、no-logic-in-tests、technology-stack-detection、verify-relevant-arguments-only、existing-test-awareness、code-context-analysis。
  • 通用规则与 generate-tests 技能共享(后者在 rules/tests/general/ 有副本),更新时需保持两处同步。