☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
cursor生成单元测试时若提示词未明确指定边界值和异常输入,必然遗漏空字符串、null、超长输入等关键路径;必须用结构化提示强制覆盖三类边界,并显式声明异常类型或提供失败样例,否则无法达到100%分支覆盖率。
用cursor生成单元测试时,若提示词不明确指定边界值和异常输入,生成的测试几乎必然遗漏空字符串、null、超长输入、负数索引、分隔符重叠等关键路径。
先确认Cursor当前生成能力的硬伤
实测显示,Cursor默认不推导边界场景——它不会自动为find_between("abc", "a", "a")生成分隔符重叠的测试,也不会为download_image(None, "test.png")补TypeError断言。这种缺失不是偶然,而是模型未被训练识别“边界”语义的结构性缺陷。
必须靠提示词强行注入判断逻辑,否则生成结果永远停留在happy path。
写提示词:强制覆盖三类边界
在Cursor输入框中粘贴以下结构化提示,【必须逐字保留括号与换行】:
请为Python函数find_between(text, start, end)生成pytest单元测试用例。要求覆盖:
① 空输入:text为空字符串、start或end为None
② 重叠/非法分隔符:start==end、start在end右侧、start不在text中
③ 极端长度:text长度为0/1/10000、start/end为Unicode控制字符
每个用例需包含明确的assert断言,并标注注释说明该用例验证哪类边界。
这一步不能简写成“加点边界测试”,Cursor会忽略“点”字背后的覆盖意图。
补漏:对null和锁账号类异常单独建模
方法一:显式声明异常类型
在提示词末尾追加一句:
【必须为所有可能抛出ValueError、TypeError、ConnectionError的位置添加try-except断言,例如download_image()调用需覆盖URL为None、网络超时、HTTP 503响应三种情况】
方法二:用真实错误码锚定上下文
直接给出一个失败样例:“当requests.get返回status_code=503时,download_image应raise ConnectionError('Figma API unavailable')”,Cursor会据此反向推导其他5xx分支。
不这样做,Cursor生成的测试里永远看不到with pytest.raises(ConnectionError)。
验证生成结果是否真覆盖边界
第一步:运行pytest --cov=tkdesigner.utils tests/ -v
第二步:检查coverage报告中find_between函数的branch coverage是否达100%
第三步:手动比对生成的test_find_between_edge_cases()是否包含以下四行断言:assert find_between("", "a", "b") == ""assert find_between("abc", "a", "a") == ""assert find_between("abc", "x", "y") == ""assert find_between("aaaabaaaa", "a", "a") == ""
只要缺一行,就说明提示词没生效,必须重写并加入更具体的失败示例。











