📦 Automatic Test Generator — 自动测试生成器
v1.0.0自动为函数生成单元测试,实现全面覆盖并涵盖边界情况
运行时依赖
安装命令
点击复制技能文档
自动测试生成器 基于现有函数与类自动生成完整单元测试。解析函数签名、实现细节与边界情况,创建全面测试套件,提升代码质量并在上线前捕获缺陷。
本技能能做什么 分析代码并生成可直接运行的单元测试,包括:
- 遵循最佳实践的测试结构(Arrange-Act-Assert 模式)
- 正常路径测试
- 边界情况覆盖(null、undefined、空数组、临界值)
- 异常与校验的错误处理测试
- 依赖与外部服务的 Mock 设置
- TypeScript 类型检查测试
- 适当时的集成测试脚手架
支持多种测试框架: Jest(JavaScript/TypeScript 默认) Vitest(现代高速替代) Mocha + Chai(传统 Node.js) Pytest(Python) Go testing(Go 标准库) JUnit(Java)
为何使用 节省大量时间 手动编写测试:每模块 30–60 分钟 使用本技能:生成 2–3 分钟 + 审查 5 分钟 每模块节省 80–90% 时间
提升测试质量
- 捕获开发者常忽略的边界情况
- 保证测试结构一致
- 含正确 setup/teardown 与 mocking
- 遵循框架最佳实践
提高覆盖率
- 覆盖所有代码路径(正常、异常、边界)
- 为无测试遗留代码生成用例
- 助力达成 80%+ 覆盖率目标
- 为复杂返回值提供断言建议
减少缺陷 研究表明,全面测试的代码:
- 生产缺陷少 40–80%
- 调试更快
- 重构更安心
- 测试即文档,更清晰
何时使用 ✅ 编写新函数后(补 TDD) ✅ 遗留代码缺测试 ✅ 提升 CI/CD 覆盖率 ✅ 重构前(安全网) ✅ 代码评审前(展示完整测试) ✅ 学习新框架测试模式 ✅ 为重复模式生成模板
何时不用 ❌ 代码已有完善测试(冗余) ❌ 替代 TDD(新项目仍推荐 TDD) ❌ UI 交互测试(用 Playwright/Cypress) ❌ 需真实数据库的集成测试(本技能生成单元测试) ❌ 需自定义业务断言(需人工审查调整)
工作原理
- 解析函数签名:参数、返回类型、TypeScript 类型
- 读取实现:理解逻辑、条件、循环
- 识别依赖:外部调用、导入、副作用
- 检测边界:null、数组操作、数值临界
- 生成结构:describe/it、setup、断言
- 创建 mock:API、数据库、文件系统
- 补充覆盖:确保所有分支
- 格式化:符合项目风格与 lint 规则
测试生成策略 简单函数:
- 基本输入输出
- 边界处理
- 类型校验
复杂函数:
- 每分支多组用例
- Mock 依赖
- 错误场景
- 集成建议
类:
- 构造器测试
- 方法测试(共享 setup)
- 状态管理
- 继承/组合测试
使用示例 示例 1:简单工具函数 源码: // src/utils/string.ts export function capitalize(str: string): string { if (!str) return ''; return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); }
指令:为 src/utils/string.ts 的 capitalize 函数生成单元测试 生成结果: // src/utils/string.test.ts import { capitalize } from './string'; describe('capitalize', () => { it('should capitalize first letter of lowercase string', () => { expect(capitalize('hello')).toBe('Hello'); }); … });