测试生成功能可基于已有的函数、组件或接口代码,自动生成对应的单元测试用例,自动覆盖正常输入、边界值、异常入参、错误分支等常见场景,无需手动逐用例编写,可快速提升测试覆盖率,降低回归Bug概率。特别适合新手补全测试体系、核心逻辑快速自测、旧代码重构后验证功能一致性。
一、三种触发方式,按需选用
1. 右键菜单快速生成(单函数首选)
适合单个函数、工具方法的快速测试生成,操作最便捷:
- 选中需要生成测试的完整函数代码;
- 点击鼠标右键,选择「Codex → Generate unit tests(生成单元测试)」;
- 侧边栏自动输出测试代码,默认适配当前语言的主流测试框架,复制到测试文件即可运行。
2. 命令面板一键触发
习惯快捷键操作的用户可快速调用:
按下 Ctrl + Shift + P(Windows)/ Cmd + Shift + P(Mac)调出命令面板,输入 Codex: Generate Unit Tests 并回车,即可为当前选中的代码生成测试用例。
3. 侧边栏自定义生成(指定框架与场景)
需要指定测试框架、覆盖特定场景、定制Mock规则时使用,灵活度最高:
- 选中目标代码后打开 Codex 侧边栏;
- 输入自定义要求,比如“使用 Pytest 框架生成测试,所有外部依赖用 mock 模拟,覆盖异常分支”;
- 生成后可继续补充要求迭代调整,直到符合项目规范。
二、常用场景指令模板(直接套用)
根据不同测试目标选择对应指令,生成的用例更贴合实际项目需求:
- 通用基础单测:为这段函数生成单元测试用例,覆盖正常输入、边界值、非法入参三类场景,每个用例添加中文注释说明测试目标。
- 指定技术栈:基于这段 Vue3 组件代码,使用 Vitest + Vue Test Utils 生成单元测试,覆盖渲染、交互、异常状态三种场景。
- 异常专项测试:重点生成异常分支的测试用例,覆盖参数为空、类型错误、依赖调用失败等场景,验证异常捕获与错误提示逻辑是否正确。
- 接口测试用例:为这个 Express 接口生成接口测试用例,使用 Supertest 库,覆盖正常请求、参数缺失、权限校验失败、参数格式错误四种场景。
- 带Mock的测试:生成测试用例时,将代码中调用的数据库查询、第三方接口全部使用 mock 模拟,返回固定测试数据,保证用例可独立运行,不依赖真实环境。
三、提升用例质量的实用技巧
- 补充业务背景,避免纯语法测试
不要只粘贴代码,简要说明函数的业务作用、入参出参的业务含义,比如“这个函数是校验用户注册信息,手机号必须符合国内11位规则,密码长度不少于6位”,生成的用例会更贴合真实业务场景。
- 明确指定测试框架与版本
项目用什么框架就明确说明,比如 Python 用 Pytest、Java 用 JUnit 5、前端用 Jest 29,避免生成不符合项目技术栈的代码,减少后续改造成本。
- 要求按场景分类输出
在指令里加上“按正常场景、边界场景、异常场景分类输出”,生成的用例结构清晰,方便后续核对和补充,也便于团队统一测试规范。
- 复杂逻辑分批生成
不要一次性选中整个模块所有代码,按函数、按逻辑单元分批生成,每生成一段就核对一次场景覆盖度,比一次性全选生成的准确率更高。
四、常见问题与处理
- 生成的用例运行报错,缺少依赖或语法不符
补充项目的具体环境信息重新生成,比如“项目使用 Node.js 18 + Jest 29,测试文件使用 CommonJS 规范”,明确版本后兼容性会大幅提升。
- 业务场景覆盖不全,漏掉特殊规则
不用全部重写,直接补充要求追加即可:“补充3个测试用例,分别覆盖手机号带国家区号、空字符串、纯空格这几个业务校验场景”,基于现有用例迭代效率更高。
- 外部依赖不会Mock,用例无法独立运行
明确指定Mock规则:“函数内部调用的 getUserInfo 接口全部mock,成功时返回指定测试数据,失败时抛出指定错误,不调用真实服务”。
- 断言太简单,测不出真实问题
补充要求强化断言:“每个用例的断言要覆盖返回值、关键副作用、错误类型三个维度,不要只判断是否不报错”。
实用提醒:自动生成的是通用场景用例,核心业务逻辑、特殊业务规则仍需人工补充校验;生成后务必本地运行一遍,确认用例可执行、断言符合预期,再正式纳入项目测试套件。