cswork / AI 辅助编程轮全部练习

补测试与重构 · 约 45 分钟

遗留运费模块:先补测试再改

src/pricing.py 的 quote() 负责结账和账单里每个包裹的运费。它被打了多年补丁,没人记得每个分支为什么存在,财务还要按它的精确结果对账,所以现有的任何价格都不能变,一分钱也不行。

产品现在要为离仓库很远的地址加一个 remote(偏远)区域:

  • 价格是同重量 domestic 价格加 40%,向下取整到分;
  • 偏远区域会员不打折;
  • FREESHIP 对偏远包裹不减免,其他优惠券和别的区域一样生效。

建议按工作中的顺序来:

  1. 在 tests/ 里写测试,把 domestic 和 international 包裹的现有行为钉住(重量边界、会员、每种优惠券、非法输入)。可以让 AI 助手起草,但每个期望值都要对照代码核实后再信。
  2. 把 quote() 重构成读得懂的样子,保持这些测试通过。
  3. 加上偏远区域。

隐藏测试会在一组重量、区域、会员与优惠券的组合上逐一对比现有价格和原函数,并检查偏远区域的规则;你只能看到通过了几个。

正在打开项目…