Codeium生成单元测试需在提示词末尾明确要求三类用例,并指定pytest.raises断言及具体异常类型,辅以失败日志、预期结构和边界实例的三段式引导。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codeium生成单元测试时默认聚焦主路径,导致边界条件、异常分支、空值输入等用例缺失,需针对性调整提示词结构才能覆盖完整测试场景。
明确要求覆盖异常分支
在原始提示词末尾追加一句:“请为每个函数生成至少3类测试用例:正常输入、空值或None输入、非法参数(如负数、超长字符串、类型错误)。”
这句必须放在提示词最后,不能嵌套在描述中——Codeium对结尾指令敏感度更高,前置描述容易被忽略。
示例原提示词:“写一个Python函数计算列表平均值” → 修改后:“写一个Python函数计算列表平均值。请为每个函数生成至少3类测试用例:正常输入、空值或None输入、非法参数(如负数、超长字符串、类型错误)。”
强制指定断言类型与错误捕获
方法一:在提示词中直接写明断言方式
“所有异常路径必须使用 pytest.raises() 捕获具体异常类型,例如 ValueError 或 TypeError,禁止只写 assert False。”
方法二:用对比式指令强化认知
“不要只写 assert add(1, 2) == 3;还要写 assert add(None, 2) 报 ValueError,且用 with pytest.raises(ValueError): 包裹。”
【异常类型必须写全称,不能写 ‘报错’或‘出错’】——Codeium会把模糊表述理解为任意异常,导致生成 try/except 而非 pytest.raises。
注入具体失败样例引导模型
第一步:在提示词中插入一段真实失败日志片段
“以下是在空列表上调用时的实际报错:ZeroDivisionError: division by zero”
第二步:紧接着给出期望的对应测试代码结构
“请据此生成测试函数 test_average_empty_list(),内部用 pytest.raises(ZeroDivisionError) 验证。”
第三步:补充一个边界值实例
“再补一个 test_average_single_element(),输入 [42],断言返回 42.0。”
这种“错误现象→预期结构→附加实例”的三段式提示,比单纯说“多写几个用例”有效率高得多。模型会沿用你提供的命名风格、断言粒度和缩进习惯。

















