编写函数或类时,还可为其编写测试。通过测试,可确定代码对面各种输入都能够按要求的那样工作。在Python中可以使用模块unittest中的工具来测试代码。 单元测试和测试用例 Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。对于大型项目而言,实现全覆盖可能很难。
import unittest
from name_function import get_formatted_name
class NameTestCase(unittest.TestCase):
def text_first_last_name(self):
formatted_name=get_formatted_name('janis','joplin')
self.assertEqual(formatted_name,'Janis Joplin')
NameTestCase只包含一个方法,用于测试get_formatted_name()的一个方面。我们将这个方法命名为test_first_last_name(),因为我们要核实的是只有名和姓的姓名能否被正确地格式化。 在上例的最后一句中,我们使用了unittest类最有用的功能之一:一个断言方法。断言方法用来核实得到的结果是否与期望的结果相同。
10.2测试类 Python在unittest.TestCase类中提供了许多断言方法。断言方法检查你认为应该满足的条件是否确实满足。若条件满足,你对程序行为的假设就得到了确认,你也就可以确信其中没有错误。
|