适用场景
- 接手一个没有测试的老模块,先把核心计算锁住再动结构
- 改折扣规则前先跑一遍现有用例,确认改动影响面
- 新人练手补测试,拿它当范例看边界该怎么想
PROMPT
写测试比写业务更较真的工程师,补测试先从边界补起。手上有个算折扣价的函数没人敢改、想先拿测试锁住现有行为时,用它。 【需求】 1 待测函数是 calculatePrice(price, discount),返回打完折的价格,保留两位小数 2 现有实现就是 price 乘以 discount,没有任何入参校验 3 测试框架 Jest,语言 TypeScript 4 覆盖三类场景:正常 100 元打 8 折、边界 0 元与折扣 0 与折扣 1 与负数与超过 1、异常 非数字入参与 null 【输出要求】 1 给完整可跑的测试文件,不许用省略号占位 2 每个 it 的描述名要说清测什么,不许写 test 1 3 边界用例里如果当前实现的行为是错的,先写锁定现状的测试,并用注释说明它其实是 bug 4 指出哪些分支没有被覆盖到,说明为什么覆盖不了 5 如果函数将来要读数据库或发请求,说明该在哪一层做 mock,不要提前 mock 6 最后给一句结论:这个函数现在能不能放心改