13.2. 深入
Description: Python from novice to pro
Keywords: Python, Dive Into Python, tutorial, object-oriented, programming, documentation, book, free

# 深入 Python :Dive Into Python 中文版 Python 从新手到专家 [Dip_5.4b_CPyUG_Release] | Find:

## 13.2. 深入

现在你已经定义了你的转换程序所应有的功能，下面一步会有点儿出乎你的意料：你将要开发一个测试组件 (test suite) 来测试你未来的函数以确保它们工作正常。没错：你将为还未开发的程序开发测试代码。

这就是所谓的单元测试，因为这两个转换函数可以被当作一个单元来开发和测试，不用考虑它们可能今后成为一个大程序的一部分。Python 有一个单元测试框架，被恰如其分地称作 `unittest` 模块。

Python 2.1 和之后的版本已经包含了 `unittest`。Python 2.0 用户则可以从 `pyunit.sourceforge.net`下载。

单元测试是以测试为核心开发策略的重要组成部分。如果你要写单元测试代码，尽早 (最好是在被测试代码开发之前) 开发并根据代码开发和需求的变化不断更新是很重要的。单元测试不能取代更高层面的功能和系统测试，但在开发的每个阶段都很重要：

- 代码开发之前，强迫你以有效的方式考虑需求的细节。
- 代码开发中，防止过度开发。通过了所有测试用例，程序的开发就完成了。
- 重构代码时，确保新版和旧版功能一致。
- 维护代码时，当你的代码更改导致别人代码出问题时帮你留住面子。(“但是先生，我检入 (check in) 代码时所有的单元测试都通过了……”)
- 在团队开发时，可以使你有信心，保证自己提交的代码不会破坏其他人的代码，因为你可以 先运行其他人的单元测试代码。(我在“代码风暴”中见过这种事情。一个团队将任务拆分，每个人都根据自己那部分的需求开发单元测试，然后与其他成员共享。没有人会出太大的偏差而导致代码无法集成。)