补全:parse 接 Store
(每道题开头都有同一段:上面那套被测系统、unittest 和 mock,以及 eng_07 的静音 run(*cases)——交回「跑了几条/挂了几条/出错几条」。)
贯穿全条的被测系统(四段流水线):
parse(line) "苹果 3 2.5" → ("苹果", 3, 2.5);不是三段就 raise ValueError
subtotal / discount 数量×单价;合计满 100 打九折
Store add(名, 数量, 单价);total() = discount(各小计之和)
report(store, rate) 每样一行「名 数量 小计」,末行「合计 X 约 Y 外币」(Y = X / 汇率)
fetch_rate() 真的去连汇率服务——本地没网,一调就 ConnectionError
handle(lines, get_rate) 整条流水线:parse 每行 → Store → report(get_rate())补全集成测试:把 SAMPLE 每行 parse 后 add 进 Store,断言 items 有 3 项、第一项是 ("苹果", 3, 2.5)、total 是 98.55。再加一条:把 add 的参数顺序故意写反(add(名, 单价, 数量)),断言 report 的第一行变成了「苹果 2.5 7.5」。
全部评论