最近在项目里用Claude Code做TDD,发现它写单测时总爱“自由发挥”。比如我给个简单的工具函数,它非要补上边界测试、异常测试,甚至自己mock一个日志模块。本来5分钟能搞定的事,它要多花20分钟,而且生成的代码风格跟项目里其他文件不太一样(它喜欢用describe/it,我们用的是test())。我已经在CLAUDE.md里写了“别加戏,只写需求里的用例”,但好像没啥用。这玩意儿是不是有隐藏的“完美主义”参数?还是我得在prompt里写得更死?有没有老哥分享下怎么让AI只干活不思考?
楼主
2026-08-19
Claude Code写测试老是自己加戏怎么办?求教调教姿势
请 登录 后发表回复
全部回复
共 42 条
2楼
14天前
在prompt里直接贴两行现有代码的风格样例,比写十句“别加戏”都管用。
3楼
14天前
我最近也碰到类似情况,感觉Claude Code有个默认的“测试洁癖”模式,你越说别加戏它越觉得你不懂工程规范。CLAUDE.md这种全局约束它其实会读,但优先级不高,真正管用的是你在单次prompt里把输出格式卡死,比如直接给一个测试文件的示例,告诉它“只准照这个模板填,不许新增describe块,不许mock任何东西”。我试过在prompt里写“如果我想加边界测试我会另行要求”,效果比CLAUDE.md好不少。还有个偏方是把任务拆碎,一次只让它写一个test case,写完你确认了再写下一个,它就没机会一口气给你堆一整套。另外describe/it那个问题,你可以在prompt里明确说“用test(),不要用describe”,它基本会听。说到底这玩意儿不是完美主义,是训练时被灌了太多“好测试应该覆盖全面”的样本,你得用具体约束把它按回你的项目习惯里。