豆包单元测试提示词编写:5种高效方法实战对比与推荐
那么,具体该如何操作?
精确描述函数行为与约束
第一步:贴出被测函数的完整定义——参数类型、返回值类型、文档字符串,一项都不能少。函数如果缺少类型标注或注释,AI大概率会误解参数结构。
第二步:用自然语言明确说明“函数在哪些条件下应返回什么结果”。至少列举一个边界值用例(例如空列表、负数输入、None参数),以及一个异常触发条件(比如除零错误、键不存在)。
第三步:指定偏好的测试框架。例如:“使用 pytest 编写,每个测试用例独立为一个 test_ 开头的方法,不要合并多个断言”。如果不指明,豆包默认会走 unittest 风格,且倾向把多个 assert 堆在同一个用例中。
提供可运行的测试样例
方法一:给出你手写的一段能正常运行的参考测试代码——哪怕只有一个用例,豆包也会模仿它的模式补全剩余用例。这比纯文字描述可靠得多。
方法二:直接写出期望的断言语句,比如 “assert calculate_discount(100, -10) == 0”、“assert parse_json('') raises ValueError”。豆包可以根据这些断言反向推导函数逻辑,进而生成完整的测试函数。
注意:如果函数依赖外部服务或全局状态,必须在提示词中声明“所有外部调用需做 mock,使用 pytest-mock 或 unittest.mock.patch”。
避开常见的无效提示词
避免写“帮我写个单元测试”——豆包根本不知道要测哪个函数、用什么框架、覆盖哪些分支。
避免写“按最佳实践写测试”——“最佳实践”过于模糊,AI会套用模板,生成一堆包含 setup/teardown 的冗余结构,而你的函数可能只是一个纯计算函数。
同样避免写“测试要全面”——AI只会堆砌10个看似多样实则重复的输入,真正需要覆盖的边界条件反而遗漏。你需要主动指定:“特别注意 price=0 和 price=None 这两种情况”。