在业务代码相对稳定后,为关键函数或模块补充单元测试往往耗时且容易遗漏边界场景。CodeBuddy 支持根据已有实现自动生成测试骨架,减少重复编写样板代码的工作量。
触发方式
- 选中生成:在编辑器内选中目标函数或类,右键选择 CodeBuddy > 生成单元测试;或在侧边栏对话中输入指令,如"为选中的
calculateDiscount方法生成测试"。 - 文件级生成:使用
@文件关联被测模块,在对话中说明"为当前文件的公共方法批量生成单元测试"。 - 命令面板:按
Ctrl+Shift+P/Cmd+Shift+P,输入"CodeBuddy: Generate Unit Tests"快速调用。
指定测试框架与风格
生成前在提示词中说明项目使用的技术栈,结果会更贴合现有代码库:
- 前端/Node.js:Jest、Mocha、Vitest
- Java:JUnit 4/5、TestNG、Spring Boot Test
- Python:unittest、pytest
- Go:标准 testing 包及 testify
若项目已存在测试目录,CodeBuddy 会参考既有测试文件的命名规则(如 .test.js 或 Test.java)和包结构,减少后续手动调整。
生成内容
通常包含以下部分:
- 基础正向用例:覆盖常规输入与预期输出。
- 边界值提示:如
null、空字符串、0、越界值等。 - 依赖占位:对需要 Mock 的外部服务或数据库调用,生成注释或 Mock 框架样板,提示你补充具体行为。
插入与采纳
生成结果默认以预览形式呈现在侧边栏。你可选择:
- 插入到测试文件:若对应测试文件已存在,自动追加;若不存在,会提示创建并置于同级
test目录或tests目录下。 - 复制或逐段采纳:若需与现有测试合并,点击复制后手动粘贴到合适位置,避免破坏已有测试上下文。
实用建议
- 人工审查不可少:AI 生成的用例主要基于代码表面分支,可能遗漏业务层面的特殊规则(如权限判断、并发场景、特定时区逻辑)。生成后务必结合需求文档补充关键场景。
- 补充业务上下文:在提示词中简述函数意图,例如"该函数处理电商订单满减,满 100 减 10,且 VIP 用户额外 95 折",生成的断言会更准确。
- 先预览再入库:建议先生成到临时标签页或剪贴板,本地运行通过后再正式提交,避免直接将未经验证的测试代码写入主干。