## 11.1.1 单元测试和测试用例
Python标准库中的模块unittest提供了代码测试工具。
**单元测试**用于核实函数的某个方面没有问题;
**测试用例**是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。
良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。
## 11.1.2 可通过的测试
测试用例创建后,再添加针对函数的单元测试就很简单了。要为函数编写测试用例,可先导入模块unittest以及要测试的函数,再创建一个继承unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。
**被测试函数**
![](https://img.kancloud.cn/1c/51/1c510af9472b9f710620f066c59d55e8_454x132.png)
**只包含一个方法的测试用例**
![](https://img.kancloud.cn/ca/07/ca07f3fcc7a5ed2b8e4e3f747d9840e4_631x300.png)
在**1**处,我们创建了一个名为NamesTestCase的类,用于包含一系列针对get_formatted_name()的单元测试。你可随便给这个类命名,但最好让它看起来与要测试的函数相关,并包含字样Test。
运行test_name_function.py时,所有以test_打头的方法都将自动运行
使用了unittest类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果是否与期望的结果一致。
![](https://img.kancloud.cn/c4/66/c466e606f89d11a8a7603fe1fd90ad0f_909x545.png)
## 11.1.3 不能通过的测试
测试未通过会报告错误信息