补测试与重构 · 约 45 分钟
遗留运费模块:先补测试再改
src/pricing.py 的 quote() 负责结账和账单里每个包裹的运费。它被打了多年补丁,没人记得每个分支为什么存在,财务还要按它的精确结果对账,所以现有的任何价格都不能变,一分钱也不行。
产品现在要为离仓库很远的地址加一个 remote(偏远)区域:
- 价格是同重量
domestic价格加 40%,向下取整到分; - 偏远区域会员不打折;
FREESHIP对偏远包裹不减免,其他优惠券和别的区域一样生效。
建议按工作中的顺序来:
- 在
tests/里写测试,把domestic和international包裹的现有行为钉住(重量边界、会员、每种优惠券、非法输入)。可以让 AI 助手起草,但每个期望值都要对照代码核实后再信。 - 把
quote()重构成读得懂的样子,保持这些测试通过。 - 加上偏远区域。
隐藏测试会在一组重量、区域、会员与优惠券的组合上逐一对比现有价格和原函数,并检查偏远区域的规则;你只能看到通过了几个。