用 Codex 写测试并跑通:指定函数、要求跟随已有测试风格、覆盖正常和边界,让它运行并报告结果,附 4 段提示词(2026

用 Codex 写测试并跑通:指定函数、要求跟随已有测试风格、覆盖正常和边界,让它运行并报告结果,附 4 段提示词(2026

结论先说

指明要测什么。 官方示例的做法:IDE 里选中函数所在的行,用命令面板的 “Add to Codex Thread” 加进对话;命令行里用 @ 指明文件,并在提示词里说清是哪个函数。

让它跟随项目已有的写法。 官方示例的要求是“遵循其他测试里用的惯例”,测试框架、命名、目录结构就不会跑偏。

说清覆盖范围。 官方示例要求覆盖正常路径加上边界情况。

让它运行测试,并报告命令和结果。 官方在 Fix a bug 一节要求它运行检查并汇报命令与结果,这个习惯同样适用于测试。

能跑通不等于写对了。 断言是否有意义,要你自己看。

图:本站根据 Codex 官方文档《Prompting Codex》 整理的示意图

一、动手前:先让项目告诉它怎么测

最好的办法是把测试命令写进 AGENTS.md。官方 AGENTS.md 页的示例就是这种写法,比如“修改 JavaScript 文件后总是运行 npm test”。写好以后,Codex 每次开工前会读到它,读取规则见 /guides/codex-agents-md-how-it-reads。

如果项目里还没有任何测试,先问清楚用什么框架。可以让它根据 package.json、pyproject.toml 之类的配置文件判断,再由你确认,而不是让它自己随便选一个新框架。

二、4 段可以直接复制的提示词

方括号里是要你自己填的内容。

1. 给一个函数写单元测试

请为 @[文件路径] 里的函数 [函数名] 写单元测试。

要求:

1. 跟随项目里现有测试的写法和目录约定(可以先看看 [已有测试文件] );

2. 覆盖正常情况,以及这些边界:[空值、负数、超长输入、重复数据];

3. 不要修改被测函数本身;如果你发现函数有 bug,先告诉我,不要擅自改。

写完后运行这些测试,把命令和结果告诉我。

2. 先列用例,确认后再写

请先阅读 @[文件路径],列出 [函数名] 值得测试的情况,按“正常、边界、异常输入”分组,每项一句话。先不要写代码。

我确认之后你再生成测试。

先看清单再写代码,可以避免它漏掉你关心的场景,也可以让你补充业务上才知道的规则。

3. 让测试失败的先别急着改

刚才运行测试有 [N] 个失败。请逐个分析:是测试写错了,还是被测代码确实有问题?给出判断依据。

不要为了让测试通过而放宽断言或删除用例。需要改被测代码的地方,先告诉我你的理由。

[粘贴失败输出]

4. 补回归测试

我们刚修复了 [bug 描述]。请添加一条回归测试:在修复之前会失败,修复之后会通过。放在 [测试文件] 里,跟随已有写法。

请说明你是怎么确认它“修复前会失败”的。

测试和修复一起做的方法见 /guides/codex-fix-bug-error-repro-prompt。

三、检查 AI 写的测试

图:本站整理的示意图

断言有没有意义:好测试检查的是行为(输入某值,得到某结果),而不是把实现照抄一遍;

故意改坏试试:把被测函数里的一个判断改反,测试应该失败;如果还是通过,说明测试没起作用;

看有没有改动原有测试:特别是“为了让测试通过”而删除用例、放宽断言;

数据:不要把真实用户数据、密钥写进测试,用虚构数据;

运行环境:让它说清是在什么命令下通过的,自己也运行一遍;

权限:测试可能需要联网、写文件,遇到审批请求时按需决定,见 /guides/codex-permissions-sandbox。

四、不同类型的代码,测试怎么提

下面是通用的测试经验,不是官方规定:

纯函数(输入决定输出,如价格计算、字符串处理):最适合先写,用例清楚,要求覆盖边界值,比如零、负数、空字符串、很大的数;

带数据库或网络的代码:让它说明怎么隔离外部依赖,比如用假数据或模拟对象,不要在测试里连接真实的生产数据库,也不要调用会产生费用的真实接口;

页面组件:先说清你想验证的是显示内容还是点击行为,再让它选合适的测试方式,项目里已有的写法优先;

异步或时间相关的逻辑:提醒它避免依赖当前时间和随机数,否则测试时好时坏,难以排查。

不确定该怎么测时,可以直接问它:“这段代码最容易出错的 3 个地方是什么?各用什么测试验证?”拿到回答后,再决定要写哪些。写好的测试要留在版本控制里,由你提交,不要让它在你没确认的情况下批量改动其他文件。

常见问题

Q:测试一直失败,它反复改怎么办?

中断它,让它先解释失败原因,再决定改测试还是改代码。反复试错会消耗额度,额度规则见 /guides/codex-usage-limits。

Q:它能一次给整个项目补齐测试吗?

不建议。按模块、按文件分批做,每批你都看一遍、运行一遍,再进下一批。

Q:测试覆盖率要不要追求 100%?

这是工程取舍,不是官方要求。优先覆盖核心逻辑和容易出错的地方。

Q:用 Codex 需要付费吗?

Codex 随 ChatGPT 套餐提供,具体额度以官方页面为准;想了解套餐可以看看 /chongzhi/chatgpt-plus 里的说明。

参考资料

Codex 官方文档:Prompting Codex — https://learn.chatgpt.com/docs/prompting

Codex 官方文档:Custom instructions with AGENTS.md — https://learn.chatgpt.com/docs/agent-configuration/agents-md

相关推荐

从大将之风到慈善之行,苏博蒂奇一直被铭记
365bet足球在线

从大将之风到慈善之行,苏博蒂奇一直被铭记

📅 09-18 👍 700
ktv带公主出去技巧(如何带ktv的公主出去)
365bet足球在线

ktv带公主出去技巧(如何带ktv的公主出去)

📅 11-20 👍 78
历史上真实的唃厮啰(青唐羌)
日博best365下拉飞机XLCOKK

历史上真实的唃厮啰(青唐羌)

📅 10-01 👍 183