组合技巧:AI 写单元测试搭配 IDE 中的 AI 编程协作
AI 写单元测试单独使用已经很有用,但在复杂任务里,和 IDE 中的 AI 编程协作组合起来效果更好。本文给出一套可以直接照做的组合流程。
两个技能各自负责什么
- AI 写单元测试:用 AI 写单元测试是把函数代码和需求说明交给 AI,让它分析输入输出和边界情况,生成测试用例和测试代码。
- AI 编程助手:AI 编程助手是集成在代码编辑器或开发环境中的 AI 功能,能补全代码、解释代码、根据注释生成函数、重构、写测试,部分工具还能在理解整个项目的基础上执行多文件修改。
AI 写单元测试有效是因为写测试需要系统地思考各种输入情况,这正是 AI 擅长列举的部分;你再根据业务判断取舍,就能更快地得到质量较高的测试;AI 编程助手有效则是因为 AI 能读到你当前的代码上下文,给出贴合项目风格的建议;把重复的样板代码和查文档的时间交给它,你专注于设计和判断。两者叠加,正好互补。
组合流程
- (AI 写单元测试)提供函数代码、使用的测试框架和项目的测试风格。
- (AI 写单元测试)让 AI 先列出测试用例清单:正常情况、边界值、异常输入。
- (AI 编程助手)在任务开始前说明目标、约束和相关文件。
- (AI 编程助手)逐段审阅生成的代码,理解每一处修改。
- (收尾)把测试纳入持续集成,定期维护。
组合模板
以程序员的场景为例,先用下面的模板完成 AI 写单元测试部分:
测试质量检查:
1. 覆盖:每个分支和错误处理路径是否都有测试?
2. 独立:测试之间是否互相依赖?是否依赖外部服务(需要模拟)?
3. 断言:是否断言了具体的结果,而不只是“没有报错”?
4. 可读:测试名称是否说明了场景和预期?
5. 稳定:是否依赖当前时间、随机数等不稳定因素?
6. 价值:有没有测试只是在重复实现细节,重构时容易失效?
请对以下测试代码逐项检查并给出改进建议:[粘贴]
然后再按 AI 编程助手的思路补一轮,例如:让 AI 先写修改计划,比直接写代码更容易发现方向错误。
示例
以下为虚构示例:
示例(虚构):一位开发者让 AI 为一个计算折扣的函数写测试。AI 列出的用例中包括“折扣叠加后价格为负数”的情况,运行测试后发现函数确实没有处理这种情况,于是补充了价格下限的逻辑。
组合之后,AI 编程助手这一环的价值在于:和编程助手协作的核心原则是:你对代码负责,AI 只是加速。
组合使用时的注意事项
- 把测试用例清单作为文档,帮助其他人理解函数的行为。
- 不看就接受生成的代码。应对方法:逐段审阅,理解每一处修改后再接受。
- 两个技能叠加会让提示词变长,先确认单独使用时各自有效,再组合。
把 AI 接入日常工作流时,最重要的是明确哪一步由 AI 起草、哪一步由人把关。分工清楚,效率和质量才能兼顾。
进一步扩展
熟悉这个组合后,还可以加入 AI 排错,形成三步流程。但每加一项都要问:它解决了什么具体问题?如果说不出来,就不要加。