FM-08 已复核 · v1.0
让编码智能体去实现你先写好的测试
你先把行为固定在测试里,智能体写实现,你负责检查它有没有改动或削弱测试。
最终产出
一处行为被你自己写的测试锁住的改动,diff 你已经读过,全套测试也由你亲自跑过。
- 难度
- 进阶
- 耗时
- 首次约 1 小时 15 分钟
- 适用环境
- 仓库中的编码智能体,完全支持
- 模型 API 与脚本,部分支持
这条技能适合你吗?
适用场景
- 行为已经清楚到可以用测试表达。
- 这段代码足够重要,你会逐行读 diff。
不适用场景
- 你还在摸索行为应该是什么样。
- 这个部分没有测试框架,而搭起框架才是真正要做的事。
开始之前
- 仓库里有可用的测试运行器。
- 一个允许改代码并运行测试的智能体会话。
步骤
检查点没过,就不要往下走。
-
写会失败的测试
覆盖主要行为和两三个边界情况。运行一遍,看着它们因为正确的原因失败。
检查点 每个测试的失败信息都点出了缺失的那项行为。
-
向智能体交代任务
要求它在不修改测试文件的前提下让测试通过;如果觉得某个测试有问题,要停下来解释。
检查点 指令里明确了不允许改动的测试文件。
-
检查 diff 里有没有动测试
查找被修改的测试、被跳过的测试、被放宽的断言,以及吃掉所有异常的兜底处理。
检查点 测试文件未被改动,也没有任何测试被跳过。
-
自己跑全部检查
在你自己的终端里跑全套测试和代码检查,不要只看智能体的汇报。
检查点 所有检查在你的机器上通过。
-
通读实现是否清楚
像复核者那样读实现,哪里比需要的更长就要求简化。
检查点 每一行改动你都能向同事解释清楚。
可能出问题的地方
- 准确性 测试可以用意料之外的方式被满足。读 diff 是方法的一部分,不是额外负担。
- 安全 你没要求过的新依赖,在查清来源和许可之前一律拒绝。
修订记录
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.0 | 首次发布。 |