SuperAPI AI 工具集

generating-unit-tests

测试与质量

查看项目

更新于 10-15 23:26

技能介绍

用途:从源码分析出发,自动生成较全面的单元测试,覆盖正常路径、边界条件、边界值与错误处理,适用于补充测试覆盖率。

主要能力:扫描代码库定位缺少测试的源文件;提取导出函数与方法签名、参数与返回类型、抛出的异常、外部依赖,并区分纯函数与非纯函数;按正常路径、边界情况、错误条件、边界值分类生成用例;为数据库、HTTP 客户端、文件系统等外部依赖创建 mock;按项目命名约定生成测试文件,用 describe/context 按函数分组,配合 beforeEach/afterEach;运行测试并检查覆盖率,报告未覆盖分支并给出补充建议。

支持框架:Jest、Vitest、Mocha(JavaScript/TypeScript)、pytest(Python)、JUnit 5(Java)、Go testing 配合 testify。

使用前提:已安装并配置测试框架;源码具备清晰函数签名、类型标注或 JSDoc;已建立测试目录结构(tests/、tests/、spec/ 或 *_test.go);具备 mock 库(jest.mock、unittest.mock、Mockito 或 gomock);已配置运行测试的脚本(npm test、pytest、go test)。

使用方式:先用 Glob 找出无对应测试的源文件,逐个读取并提取函数信息,再生成分类用例与 mock,写入符合项目约定的测试文件,最后运行测试并核对覆盖率。

输出:与源码同目录或测试目录下的测试文件、外部依赖的 mock/stub 文件、行/分支/函数覆盖率报告,以及剩余覆盖缺口与建议用例清单。

限制与常见问题:导入报 Cannot find module 时需检查 tsconfig.json 路径与 Jest 的 moduleNameMapper;mock 未拦截调用通常因 mock 定义在模块导入之后,应把 jest.mock() 移到文件顶部;异步超时多因缺少 await 或未处理 rejection;单独通过但一起失败常因共享可变状态,需在 afterEach 重置;首次快照不匹配可用 --updateSnapshot 建立基线。具体安装与配置细节资料未提供。