Python测试驱动开发
Python测试驱动开发
简介:
引言
Harry Percival的著作《Test-Driven Development with Python》(中文译名为《Python测试驱动开发》)并非又一本普通的Python教程。它是一本完整的实践指南,通过构建一个真实的Web应用程序,将读者带入测试驱动开发(TDD)的世界。该书于2017年出版(第二版),至今仍具有现实意义,尤其适合那些希望掌握使用Django和Selenium进行Python专业开发实践的人。
作者Harry Percival是PythonAnywhere公司的高级工程师,在测试和Web开发领域经验丰富。他不仅讲解理论,更会一步步引导读者,从空目录开始,最终构建出一个完整、经过测试的应用程序。
这本书是关于什么的?
本书专注于测试驱动开发(TDD)方法论在Python Web开发中的应用。主要项目是使用Django创建一个简单的待办事项列表(To-Do lists)应用程序。然而,本书的真正价值不在于项目本身,而在于过程:你将学会在编写代码之前先编写测试,并亲眼目睹这如何改变最终产品的架构和质量。
本书涵盖以下内容:
- TDD基础:红-绿-重构(Red-Green-Refactor)。
- 使用Selenium进行功能测试。
- Django的单元测试(模型、视图、表单)。
- 使用QUnit和Sinon.js测试JavaScript。
- 使用Travis CI进行持续集成(CI)。
- 在服务器上部署(PythonAnywhere, Heroku)。
- 数据库操作、迁移和测试夹具。
- Mock对象和外部服务测试。
这本书适合谁?
本书面向已掌握Python基础并对Web框架有基本了解(最好是Django,但非必需)的开发者。如果你:
- 希望编写更可靠、更易维护的代码;
- 厌倦了“通过print调试”,希望实现自动化检查;
- 计划在将TDD作为标准的团队中工作;
- 想了解如何不仅测试后端,还能测试前端(JavaScript);
——那么这本书适合你。Python新手可能会觉得有难度:作者假设你能够安装包、使用虚拟环境,并理解面向对象编程的基础知识。
读者将学到什么?
阅读本书后,你将能够:
- 在编写代码之前编写测试,并看到这如何加速开发。
- 使用Selenium模拟用户在浏览器中的操作。
- 在各个层面测试Django应用程序:从模型到模板。
- 自信地重构代码,因为测试会捕获回归错误。
- 配置CI/CD以自动运行测试。
- 在TDD背景下使用Git(频繁提交、原子性变更)。
- 为JavaScript编写测试并将其集成到整体流程中。
本书的优点
1. 实践导向。你不仅仅是阅读理论——你会与作者一起编写代码。每一章都包含具体步骤、终端命令和解释。
2. 循序渐进。从测试中的简单“Hello, world”开始,最终以部署到带有HTTPS和静态文件的生产服务器结束。
3. 真实项目。待办事项列表应用程序并非玩具示例,而是一个可以扩展的完整项目。
4. 涵盖现代工具。Selenium、Django、Git、Travis CI、PythonAnywhere——这些都是行业中实际使用的工具。
5. 详细解释。作者不仅给出命令,还会解释为什么这样做,