第5章 单元测试和重构

这里对到目前为止所学的知识进行一个快速的回顾。你开发了一个基于命令行的应用程序,该程序使用了面向对象的方法,然后学会通过使用异常处理技术,让你的代码更加健壮。然后你对代码进行模块化,准备发行版本,并将其发布给更广泛的受众使用。最后,你了解了编码标准和文档。

到目前为止,我们还没有太多关注应用程序的测试。我们仅仅是依赖手工测试,通过玩游戏测试一些功能。随着应用程序越来越复杂,手动测试的任务也会变得越来越困难。你很快就会被压垮,程序漏洞开始暴露出来了。虽然手动测试可能无法完全避免,但是我们仍然需要一个自动化的方式,以确保功能符合预期。在本章中,你将做以下几件事情:

  • 了解单元测试、Python中的单元测试框架。
  • 为我们的应用程序编写一些单元测试。
  • 学习如何在单元测试中使用模拟库。
  • 学习如何评估单元测试的有效性(代码覆盖率)。
  • 理解什么是代码重构,为何、何时以及如何去做代码重构。
  • 做了一些代码重构后回到单元测试讨论。

本章开始于一个游戏场景,其中一个漏洞被发布到了生产环境并且很隐蔽,直到一个用户发现了它。这个场景强调了自动化测试的必要性,然后引出了对Python中的单元测试框架的讨论。接下来将向你介绍单元测试框架和Python中的模拟库。本章将为我们的项目编写一些单元测试来演示这些库的使用。

继续学习,本书提供了一个示例,在不进行重构代码之前很难编写单元测试(参见重构的前言)。这时我们进行了一下扩展,学习重构的基础,重构代码,然后制定最后的单元测试。

如果你没有阅读前面的章节,那么这些内容将会是很有用的。否则,你可以直接跳转到下一节内容。和其他章一样,本章也有自己的Python源文件集。源代码可以从Packt出版社的网站上进行下载。请参照本书前言中所提到的说明。 ...

Get Python应用开发指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.