标签
内容简介
本书是《Test-Driven Development with Python》的中文译本(2015年人民邮电出版社图灵程序设计丛书版,安道译)。作者哈里·J.W. 珀西瓦尔以“结对编程”的口吻,带读者从零开始开发一个真实的待办事项清单(To-Do Lists)网站,全程贯彻“没有测试什么也别做”的测试山羊信条:先写会失败的测试,再写最少量代码让它通过,然后重构。 全书分为三部分。第一部分(第1~6章)打基础:用 Selenium 写功能测试,用 Python 标准库 unittest 与 Django 自带的测试工具写单元测试,厘清功能测试与单元测试的分工,并沿途引入 Django 的模型、视图、模板、表单、ORM 与数据库迁移,同时把 Git 提交纳入 TDD 循环。第二部分(第7~14章)处理 Web 开发绕不开的现实问题:用 Bootstrap 与模板继承美化页面、管理静态文件、搭建过渡(staging)服务器、用 Fabric 自动部署、做输入验证与表单重构、试探 JavaScript 及其测试,以及把新代码安全地上线。第三部分(第15~22章)进入进阶话题:用户认证与集成第三方登录、用模拟(mock)技术隔离外部依赖、测试固件与日志调试、由外而内的 TDD、测试隔离,以及持续集成等。 本书不是 Python 语法书,也不满足于罗列知识点,它想传授的是一套可重复的工程习惯:让测试成为设计工具,让重构有安全网。读者会顺带掌握 Django、Selenium、Git、jQuery 和 Mock 的基本用法。
编辑推荐
很多讲测试的书停在概念和玩具示例上,这本书则把你按在一张真实的工位旁边:一起装 Django、一起写第一个会失败的 Selenium 测试、一起被“测试山羊”盯着不放。作者珀西瓦尔是 TDD 的长期布道者,也是 PythonAnywhere 的开发者,因此书中连注册域名、配 Nginx、用 Fabric 部署这类“脏活”都写得清清楚楚。 它的价值在三处。其一,先测试后编码的节奏贯穿全书,读者能亲身体会“红—绿—重构”为什么能降低心理压力,而不是被口号说服。其二,功能测试与单元测试的分层讲得极透,这两种测试各自管什么、什么时候该用 mock,都有可操作的判断标准。其三,把 Git、部署、持续集成这些工程实践编进同一条流水线,学完相当于走完一个小型项目的完整生命周期。 需要提醒的是,本版基于较早期的 Django 与 Python 3 环境,部分命令与库版本已显陈旧;如果只想要最新框架用法,可参考后来改名为《Python测试驱动开发》的第2版。但作为理解 TDD 思维方式的第一本书,它依然值得反复翻。
适合谁读
适合
- 已会写 Python、做过一两个小项目,想系统学习工程实践的开发者
- 使用 Django 或其他框架做 Web 开发,却长期不敢重构代码的人
- 计算机专业学生或转行者,希望用一个完整项目串起开发全流程
- 对单元测试、功能测试、持续集成只闻其名、缺少实操经验的读者
不适合
- 完全零基础、尚未掌握 Python 基本语法的初学者,读起来会两头顾不上
- 只想查 Django API 用法、当作速查手册使用的读者
- 严格跟随最新框架版本、需要即用型现代代码示例的团队
- 只关心前端或纯算法、不打算接触 Web 后端工程的人
阅读建议
- 务必打开编辑器跟着敲代码,不要复制粘贴;书中特意强调手打能形成肌肉记忆并训练调试能力。
- 遇到测试失败先自己排查再看书,把“红—绿—重构”的循环亲手走完一轮,比读完十章更有用。
- 版本差异较大的章节,先按书中的思路理解意图,再对照当前 Django 文档调整具体写法。
- 读完第 14 章后,可把自己的小项目改造成 TDD 流程,用功能测试守住最关键的用户路径。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 前言
- 准备工作和应具备的知识
- 第一部分 TDD 和 Django 基础
- 第1章 使用功能测试协助安装Django
- 第2章 使用unittest模块扩展功能测试
- 第3章 使用单元测试测试简单的首页
- 第4章 编写这些测试有什么用
- 第5章 保存用户输入
- 第6章 完成最简可用的网站
- 第二部分 Web开发要素
- 第7章 美化网站:布局、样式及其测试方法
- 第8章 使用过渡网站测试部署
- 第9章 使用Fabric自动部署
- 第10章 输入验证和测试的组织方式
- 第11章 简单的表单
- 第12章 高级表单
- 第13章 试探JavaScript
- 第14章 部署新代码
- 第三部分 高级话题
- 第15章 用户认证、集成第三方插件以及JavaScript模拟技术的使用
- 第16章 服务器端认证,在Python中使用模拟技术
- 第17章 测试固件、日志和服务器端调试
- 第18章 完成“My Lists”页面:由外而内的TDD
- 第19章 测试隔离和“倾听测试的心声”
- 第20章 持续集成
- 第21章 简单的社会化功能、页面模式,以及练习
- 第22章 测试运行速度的快慢和炽热的岩浆
- 书目
常见问题
这本书只讲测试吗?
不止。测试是主线,但作者围绕它讲了 Git 版本控制、静态文件与 Bootstrap 美化、过渡服务器与自动部署、表单验证、JavaScript 及其单元测试、mock 技术、持续集成等整套 Web 开发实践,可以当作一个完整项目的实战课。
读之前需要什么基础?
需要能读懂并写出基本 Python 3 代码,最好了解函数、类与模块的概念。书中从零介绍 Django,但作者建议完全没接触过 Django 的读者先花几小时过一遍官方教程再回来。
这本书和第2版《Python测试驱动开发》是什么关系?
本书是 2015 年人民邮电出版社的中译本,译自原书第1版;2018 年的第2版改名为《Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程》,改用 Python 3 与新版 Django 重写。两本内容框架相近,选一本跟着做完整流程即可。
书中的代码版本太老还能照着做吗?
核心的 TDD 流程、测试分层思路和部署原理不会过时,可以照做;但 Django、Fabric、Selenium 等具体 API 与命令已有变化,建议对照对应版本的官方文档微调,遇到报错优先查文档而不是怀疑方法本身。
适合用来准备面试或转行吗?
适合作为项目经验的补充。它能帮你讲清楚测试策略、部署流程和重构取舍,但面试常考的框架细节、数据库与算法仍需另行准备,别把它当作唯一复习材料。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。