2026.10.252 分钟阅读
把一次代码修复写成可验收的工作流
abit
01 / 用输入与输出描述问题
先记录可观察的结果。例如,要求“清理标题首尾空白,但保留词语之间的空格”。这比“优化一下标题处理”更容易形成明确的验收条件。
收集正常输入、空字符串和包含连续空格的输入。不要在修复时顺手改变大小写、标点或正文内容。
02 / 建立最小复现
下面是一个独立的教学片段,不依赖框架。把它保存为 .mjs 文件后,可在支持 Node.js 的本地环境运行。
示例 · title-check.mjs
import assert from 'node:assert/strict';
const normalizeTitle = value => value.trim();
assert.equal(normalizeTitle(' AI workflow '), 'AI workflow');
assert.equal(normalizeTitle(''), '');
assert.equal(normalizeTitle('AI workflow'), 'AI workflow');
console.log('3 title cases passed');
03 / 区分修复与额外改动
先在项目真实入口确认问题,再修改对应实现。示例函数中的 trim 只处理两端空白;如果换成删除全部空格的规则,就会改变原先的行为约定。
把用例放在项目实际的测试层中,覆盖调用方能够看到的结果。已有测试设施可用时,不必为这个小改动再安装一个框架。
04 / 写下交付与限制
说明改了什么、为什么这样改,以及运行过哪些检查。没有运行环境时,应交付检查方法和未验证项,不能写“全部通过”。
把这份任务约定交给“测试与重构助手”时,也应提供仓库入口和相关命令。工作流负责组织验证,不会让没有执行过的测试自动变成证据。