Codex补全测试需四步:①确认/创建对应测试文件;②提供含参数类型和逻辑分支的完整函数上下文;③用确定性指令明确边界覆盖要求;④验证测试能否随防御逻辑开关切换失败/通过状态。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让Codex帮你补全测试,但生成的用例只覆盖了正常输入,空值、零值、超长字符串、负数、并发提交这些边界情况全被漏掉,导致上线后线上报空指针或越界异常。
确认当前函数是否已存在测试文件
打开项目根目录,搜索目标函数名(如validateUserInput)或其所在模块名,看是否有对应测试文件(常见命名:xxx.test.ts、xxx.spec.js、test_xxx.py)。没有就新建;有则直接打开。
这一步不能跳过——Codex不会主动创建新测试文件,它默认在已有测试上下文中追加。如果文件不存在,它可能把测试代码塞进源码里,或者生成一个无法运行的独立片段。
给Codex提供精准的函数上下文
复制目标函数的完整定义(含参数类型、返回值、关键逻辑分支),连同它的调用示例(如有)一起发给Codex。不要只贴函数名,也不要只贴调用处。
【必须包含参数类型声明】比如 TypeScript 中的 (email: string | null, age: number | undefined),Python 中的 def process(data: Optional[dict]) -> bool:。Codex靠这个推断哪些参数可能为空、哪些可能越界。
如果函数内部有 if/else 分支、switch 或 try/catch,也一并提供。Codex会据此生成对应路径的失败用例,比如 catch 块里的异常输入、else 分支里的非法状态。
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
用结构化提示词明确要求边界覆盖
方法一:直接指定缺失类型
“为上面的函数补充单元测试,覆盖以下场景:①所有字符串参数传 null / undefined / 空字符串;②所有数字参数传 NaN / Infinity / 负数 / 零 / 超出业务范围的极大值;③对象参数传 null / 空对象 / 缺少必填字段;④数组参数传 null / 空数组 / 包含 null 元素的数组;⑤并发调用同一实例的两次请求。”
方法二:引用已有测试反向驱动
“当前测试中已有 3 个成功用例,但缺少对空值和边界值的验证。请在不删除原有测试的前提下,新增至少 8 个测试用例,确保 Jest / pytest / go test 能直接运行,每个用例要有清晰的描述性名称(如 ‘should return false when email is null’)。”
注意:不要说“尽量覆盖边界”,Codex会按字面理解为“可选动作”。必须用“必须覆盖”“新增至少 X 个”“每个用例要包含 Y 条件”等确定性指令。
验证生成的测试是否真实触发异常路径
第一步:运行 Codex 新增的测试,确认它们真的失败(即触发了你期望捕获的异常或错误返回);
第二步:临时注释掉函数中对应的防御逻辑(比如 if (!email) return false;),再运行——此时测试应全部通过;
第三步:取消注释,测试应回到失败状态。
这一步验证的是测试有效性。很多 Codex 生成的“边界测试”其实只是构造了空值输入,但函数本身没做校验,结果测试永远通过,起不到兜底作用。只有当测试能随函数逻辑开关而切换状态,才算真正命中路径。
如果发现某个用例始终通过,说明函数没处理该情况,或 Codex 构造的输入没打中真实分支——这时候要回溯第二步,检查是否漏传了关键条件(比如函数实际依赖外部配置,但你没告诉 Codex)。

















