与其记住所有要点,不如把 AI 写单元测试整理成一张清单。用 AI 写单元测试是把函数代码和需求说明交给 AI,让它分析输入输出和边界情况,生成测试用例和测试代码。工作流类技能的价值在于把 AI 嵌进你已有的流程里,而不是另起炉灶。先挑一个最常做、最费时的环节试点,效果稳定后再扩展。

适合对照清单的时刻

  • 新功能开发时同步编写测试。
  • 需要发现代码中未处理的边界情况。

清单的意义在于:当它列出“如果输入为空会怎样”“如果两个参数相等会怎样”时,你可能会发现自己从没考虑过这些情况。

使用前

  • 提供函数代码、使用的测试框架和项目的测试风格。
  • 说明函数的预期行为和业务规则。
  • 让 AI 先列出测试用例清单:正常情况、边界值、异常输入。
  • 确认材料中不包含未发表的研究数据和论文手稿,必要时先脱敏。

使用中

  • 确认用例清单后再生成测试代码。
  • 运行测试,对失败的用例判断是代码问题还是测试问题。
  • 判断每个用例是否合理,删除重复和无意义的测试。
  • 要求断言具体的输出值和状态。

使用后

  • 把测试纳入持续集成,定期维护。
  • 先判断是代码错误还是测试错误。
  • 对外发出前已由自己通读并确认。
  • 科研人员特别注意:让 AI 帮你梳理论文结构、解释方法和润色语言,观点和数据要由你负责。

避免这些做法

  • 不提供业务规则。
  • 直接接受所有生成的测试。
  • 测试只断言“不报错”
  • 测试依赖外部服务。

配套模板

清单配合下面的模板使用效果更好:

请为下面这个函数编写单元测试,测试框架是[框架名]。
函数用途:处理科研人员工作中“实验组”相关的数据计算。
请:
1. 先列出测试用例清单:| 用例 | 输入 | 预期输出 | 类型(正常/边界/异常)|;
2. 至少包含:空输入、极大值、非法格式、重复数据等情况;
3. 等我确认清单后再写测试代码;
4. 测试命名清楚地表达测试意图。
函数代码:[粘贴]

按清单完成后,结果大致会是这样(虚构示例):

示例(虚构):一位开发者让 AI 为一个计算折扣的函数写测试。AI 列出的用例中包括“折扣叠加后价格为负数”的情况,运行测试后发现函数确实没有处理这种情况,于是补充了价格下限的逻辑。

让清单更好用的两个习惯

  • 先让 AI 列用例清单,确认后再写代码,效率更高。
  • 把测试用例清单作为文档,帮助其他人理解函数的行为。

清单之外

AI 写的测试能直接提交吗? 需要运行并审查,确认测试有意义、断言正确,再按团队规范提交。

老代码没有文档怎么写测试? 可以先让 AI 解释代码行为,你确认后再基于当前行为写测试。

把清单变成习惯

不必追求每次都完美勾满。更实际的做法是:重要任务全量检查,日常小任务只看标星的几项。科研人员在准备论文初稿或参加组会前用一次,就能感受到差别。

相关阅读