人人都会AI编程

3.6.1 单元测试用例自动生成

更新时间:2026-06-30

在业务代码相对稳定后,为关键函数或模块补充单元测试往往耗时且容易遗漏边界场景。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.jsTest.java)和包结构,减少后续手动调整。

生成内容
通常包含以下部分:

  • 基础正向用例:覆盖常规输入与预期输出。
  • 边界值提示:如 null、空字符串、0、越界值等。
  • 依赖占位:对需要 Mock 的外部服务或数据库调用,生成注释或 Mock 框架样板,提示你补充具体行为。

插入与采纳
生成结果默认以预览形式呈现在侧边栏。你可选择:

  • 插入到测试文件:若对应测试文件已存在,自动追加;若不存在,会提示创建并置于同级 test 目录或 tests 目录下。
  • 复制或逐段采纳:若需与现有测试合并,点击复制后手动粘贴到合适位置,避免破坏已有测试上下文。

实用建议

  • 人工审查不可少:AI 生成的用例主要基于代码表面分支,可能遗漏业务层面的特殊规则(如权限判断、并发场景、特定时区逻辑)。生成后务必结合需求文档补充关键场景。
  • 补充业务上下文:在提示词中简述函数意图,例如"该函数处理电商订单满减,满 100 减 10,且 VIP 用户额外 95 折",生成的断言会更准确。
  • 先预览再入库:建议先生成到临时标签页或剪贴板,本地运行通过后再正式提交,避免直接将未经验证的测试代码写入主干。