AI 很擅长“编”单元测试,但直接生成的用例经常一跑就红。下面三步法能把失败率降下来,让 AI 成为可用的测试初稿机。
第一步:把被测对象的真实签名喂进去
不要只贴函数体,把类型定义、依赖注入和构造方式一起贴出来,避免 AI 凭空猜接口。
class DiscountService:
def __init__(self, repo: ProductRepo):
self.repo = repo
def calc(self, product_id: int, user_level: int) -> int: ...
# 请基于以上签名生成 pytest 用例,仓库对象用 mock 注入第二步:先跑一遍,把红色报错反馈给 AI
AI 看不到运行结果。把第一条失败堆栈原样贴回去,请它修正用例,通常两三轮后用例就稳定了。
刚才生成的 test_calc 运行失败,报错如下:
AttributeError: 对象没有属性 get_by_id
请对照真实接口修正 mock 的属性和返回值。第三步:收敛断言与边界
AI 喜欢只写“快乐路径”。请在提示词里要求它覆盖:空输入、极端数值、异常抛出等场景,并禁止用 sleep、访问网络这类不稳定写法。
小结:把 AI 生成的单测当成初稿,配上类型信息与真实反馈迭代,它产出的用例质量会接近老手水平,而成本低得多。
评论(0)
暂无评论,快来抢沙发吧~