AI写代码总“假对真错”?EvanFlow用TDD循环根治这个痛💡
AI 写代码,语法漂亮、逻辑看似滴水不漏,结果一运行就崩——这种“表面正确”的问题已经成了很多开发者对 AI 编程助手的日常吐槽。Claude Code 在这方面的表现尤其典型:它擅长生成看起来完美的代码块,但常常跳过验证环节,像个在考卷上填满答案却全部写错的学生。
今天开源的 EvanFlow 正是冲着这个痛点去的。它把测试驱动开发(TDD)中“红-绿-重构”的经典循环,硬塞进了 Claude Code 的工作流。具体来说,开发者先写一个会失败的测试用例(红),然后让 Claude Code 生成代码去通过它(绿)。EvanFlow 自动运行测试,如果失败,就把错误信息原封不动地扔回给 Claude Code,让它重写——循环往复,直到全部通过。
本质上,这工具替你省掉了手动“跑测试→看报错→重新写 prompt”的机械劳动。你只需要把标准定好(写好测试用例),剩下的迭代交给 AI 和 EvanFlow 自己完成。
这件事之所以值得关注,有几个层面的原因。
首先,它直接对症下药。很多 AI 生成的代码语法完美,一跑就露馅,根本原因在于生成过程中缺少“失败反馈”。引入 TDD 循环后,每一次修改都基于具体的失败信息,相当于给 AI 的输出套上了缰绳。
其次,测试用例本身就是可复用的需求文档。以后 Claude Code 升级了,再跑一遍同样的测试集,就能立刻知道新版本有没有搞砸旧逻辑——这种回归验证能力,是纯生成式工具做不到的。
第三,节省人的精力。以前开发者得像保姆一样盯着 AI 的输出,手动画线定位错误,再重新组织 prompt 喂给它。EvanFlow 把这个“反馈回路”自动化了,脑子确实轻松不少。
Hacker News 上这个项目拿了 68 个赞和 30 条评论,讨论主要集中在三个争议点上。
成本问题。每次迭代都要调用 Claude API,测试用例写得越多、迭代次数越多,token 消耗就越大。不过作者已经给出了解法:你可以设置一个“最大迭代次数”阈值,到顶就自动停,不至于让账单失控。
测试质量。工具的效果完全取决于你手写的测试用例是否靠谱。如果测试写得粗、漏了关键场景,那 AI 生成的代码照样是“以偏概全”。(说白了,自己写的测试不严谨,工具也救不了。)
IDE 集成。目前 EvanFlow 只是一个命令行工具,和 VS Code 之类的主流 IDE 还没有深度集成。但对于用 Neovim 的 CLI 极客来说,这反而是一种“纯粹的美”——毕竟他们连鼠标都不想碰。
我个人觉得,这可能是 AI 编程从“生成工具”走向“开发伙伴”的一小步。过去我们只是教 AI 怎么写代码,现在开始教它“怎么像人类程序员一样,通过测试来验证自己的代码”。如果 EvanFlow 后续能支持 Jest、pytest、RSpec 这些常见测试框架,再提供一些标准模板,它完全有可能成为 Claude Code 生态里的“必装插件”。
当然,这个项目也在提醒我们一件事:AI 再强,最终的质量关还是得人类来把——而那个“测试用例”,就是这道关口上的智能闸机。
项目地址:https://github.com/evanklem/evanflow
如果你是个 TDD 信徒,或者单纯厌倦了天天给 AI 写的代码收拾烂摊子,值得花个晚上 clone 下来试试。