如果你担心 Codex 改代码太快、范围太大,可以让它按测试驱动开发。TDD 的好处是把“应该发生什么”先固定下来,再让实现去满足它。
适合 TDD 的任务
- 修复一个已知 bug
- 给现有函数增加边界行为
- 新增一个小接口
- 调整计费、权限、状态流转等高风险逻辑
不适合的任务包括纯视觉探索、一次性脚本、没有测试环境的临时排查。
推荐提示词
请用测试驱动方式实现这个功能:
<功能描述>
流程要求:
1. 先写一个最小失败测试;
2. 运行测试,确认它因为目标功能缺失而失败;
3. 再写最小实现;
4. 重新运行测试;
5. 不做无关重构。怎么判断失败测试是有效的
失败测试应该满足三点:
- 失败原因和目标行为相关
- 不是因为语法错误或环境错误
- 实现完成后会变绿
如果测试一开始就通过,说明它没有测到新行为。你应该让 Codex 重写测试。
示例:修复边界条件
用户余额为 0 时,创建 API Key 应该失败并返回明确错误。
请先补一个失败测试,覆盖余额为 0 的场景。
不要先改实现。这样 Codex 会先把预期行为写进测试里,再改实现逻辑。
实现后继续要求解释
请说明:
- 测试覆盖了哪个行为;
- 实现改动为什么能让测试通过;
- 还有哪些边界条件没有覆盖。这能帮助你判断它是不是只为了通过一个测试而硬编码。
常见坑
不要让 Codex 一次写十个测试。先写最关键的一个。
不要接受只测 mock 的测试。测试应该尽量覆盖真实业务行为。
不要为了测试通过而改掉需求。测试描述错了就先改测试说明,而不是改业务目标。
官方来源
- https://developers.openai.com/codex/learn/best-practices
- https://developers.openai.com/codex/cli