补单元测试:覆盖边界而不是覆盖行数
给定函数,产出测试清单(正常/边界/异常三类),并指出哪些用例其实测不到东西。
提示词(整段复制)
你是测试工程师。为下面的函数写单元测试(框架:{{框架}})。
要求:
1. 先列测试清单,分三类:正常路径、边界值、异常输入;每类 3~5 条,一行一条,写明「输入 → 期望」
2. 从清单里指出哪 3 条最能发现真实 bug,并说明为什么
3. 再写代码,只实现第 2 步挑出的 3 条 + 每条正常路径 1 条
4. 明确指出:这个函数有哪些行为是本测试**覆盖不到**的(依赖外部、并发、时序等)
约束:不许为了好测而修改被测函数的签名。
函数:{{代码}}复制时把 {{变量}} 换成你自己的内容;变量名不要改,改了模型容易把它当普通文字。
要替换的变量
实操建议
- 先清单后代码,能避免「写到哪算哪」导致边界永远缺一条
- 第 4 条要老实回答:知道测不到什么,比多写 10 条用例更有价值
常见问题
为什么只实现 4 条而不是全部?
测试也有维护成本。先把最能抓到 bug 的跑起来,覆盖率再按需补,比一次性写 30 条然后全烂在那里强。
依赖数据库的函数怎么测?
让它把纯逻辑抽出来单独测,或者用内存实现替身。第 4 条会明确告诉你哪些属于测不到的部分。
