- 文集信息
- 目录大纲
- 最新文档
- 知识宇宙
文集详情
文集导读
教程导读:把 TDD 当手艺练——红绿重构的动手之旅
凌晨时分,电商值班的群里弹出红色告警:结账页算出的应付金额比收银小票多出些零头,客诉数往上冒。工程师翻代码、翻日志、翻配置,忙到天亮,修好上线,过些日子另一个角落又冒出类似的错。这样的夜晚其实有更便宜的过法——让代码先被测试逼问,再被实现回答,最后被重构收拾整齐。这套节律就是测试驱动开发,Test-Driven Development,圈内人管它叫 TDD,管它的骨架叫红-绿-重构。
这本教程讲什么
TDD 不是"写完代码再补测试",而是把顺序倒过来的一种开发节律:动手写实现之前,先写一段会失败的测试(红);然后写恰好让测试通过的最小实现(绿);最后在测试的保护下整理代码(重构)。循环转得足够快,测试就不再是交付前的负担,而是你思考需求的草稿纸、改动代码的安全网、以及随时可执行的规格说明。
本册的立场很直接:TDD 是手艺,不是知识点。看懂循环图和真的把循环跑起来,中间隔着一条需要亲手趟过的河。所以全册按"动手优先"组织——每个概念都配完整的代码演练,从失败的测试写起,给出最小实现,再做重构,三步齐全,代码以 Python 和 pytest 为主,个别例子穿插 unittest 的对照写法。
贯穿案例:灯塔小组的结算后端
为了不让例子散成一盘沙,全册跟着同个小团队走:灯塔小组,接了个电商结算后端的活儿,要做购物车、会员折扣、优惠券、支付网关对接。案例是刻意简化的——足够小,每轮循环几分钟内能跑完;又足够真,会碰到边界值、外部依赖、异步回调这些真实麻烦。跟着案例敲完,你会攒下整套可复用的测试代码手感。
全册怎么走
路线按依赖关系铺开:先装好工具、认识节奏(第 1 章),再把红绿重构循环本身跑顺(第 2 章),然后补齐测试的骨架功夫——断言、夹具与测试替身(第 3 章)。有了这些基本功,第 4 章看设计如何从测试里长出来;第 5 章走出单元测试的舒适区,处理金字塔分层、遗留代码与时间、异步这类难缠边界;第 6 章把循环装进流水线,让机器替你盯着红灯;第 7 章谈陷阱、度量和团队落地。附录是 pytest 速查,写到手生时翻一翻。
图:全册学习路线图

先修关系说得很实:第 2 章的循环是全册的心脏,第 3 章的替身功夫是第 5 章遗留代码改造的前置——没有替身,旧代码里的外部依赖根本隔离不开。第 4 章的设计话题可以后读,但它回过头解释你前几章写测试时的诸多"顺手"。
怎么用这本教程
环境准备只要几样:Python 3.10 或更新版本,装好 pytest(pip install pytest,8.x 版本即可),一个顺手的编辑器。每节的演练都按"红、绿、重构"三步给出完整代码,建议别复制粘贴,跟着敲——红灯亮起时那个"哪里不对"的直觉,正是 TDD 要训练的肌肉。读的时候备一个能跑 pytest 的终端,看到断言就猜输出,猜错了收获最大。
一句话概括本册:TDD 的价值不在测试多,而在反馈快——循环每转圈,你对代码的了解就加深层。
适合谁、不适合谁
你在做新功能、修 bug、设计接口、接手遗留模块,这本教程都对口。它不太适合两类阅读预期:想找"测试工具大全"的,这里工具只在第 6 章集中出现,其余章节工具都是配角;想找"一次性学完理论再动手"的,本册顺序正好相反——先动手,理论随实操自然浮现。TDD 的门槛不在智力而在习惯,改掉"先写再说"的肌肉记忆大约需要几周刻意练习,这本教程就是那几周的陪练。
最后交代练习的验收口径:每章末尾的"读完你应该"就是自测清单,逐条对照,达不到就回对应节重跑演练。练完的标志不是"看懂了",而是合上教程后,面对一条新需求时手会先伸向测试文件——那个下意识的动作,就是本册想交付的全部东西。
目录大纲
最新文档
知识宇宙
正在加载知识图谱...