Python 基础入门前六篇:
- Python 基础入门–简介和环境配置
- Python基础入门_2基础语法和变量类型
- Python基础入门_3条件语句和迭代循环
- Python基础入门_4函数
- Python基础入门_5面向对象基础
- Python基础入门6_文件和异常
这是第七篇,也是这个基础入门系列的最后一篇内容,简单介绍如何采用 unittest
模型编写测试用例。
测试函数
首先是给出用于测试的代码,如下所示,这是一个接收姓和名然后返回整洁的姓名的函数:
def get_formatted_name(first, last):
full_name = first + ' ' + last
return full_name.title()
简单的测试代码:
first = 'kobe'
last = 'bryant'
print(get_formatted_name(first, last)) # 输出 Kobe Bryant
在 Python 标准库中的模块 unittest
提供了代码测试工具。这里介绍几个名词的含义:
- 单元测试:用于核实函数的某个方面没有问题;
- 测试用例:一组单元测试,它们一起核实函数在各种情形下的行为符合要求。
- 全覆盖式测试用例:包含一整套单元测试,涵盖了各种可能的函数使用方式。
通常,最初只需要对函数的重要行为编写测试即可,等项目被广泛使用时才考虑全覆盖。
接下来就开始介绍如何采用 unittest
对代码进行测试。
首先是需要导入 unittest
模块,然后创建一个继承 unittest.TestCase
的类,并编写一系列类方法对函数的不同行为进行测试,如下代码所示:
import unittest
class NamesTestCase(unittest.TestCase):
'''
测试生成名字函数的类
'''
def test_first_last_name(self):
formatted_name = get_formatted_name('kobe', 'bryant')
self.assertEqual(formatted_name, 'Kobe Bryant')
unittest.main()
输出结果如下,显示运行的测试样例是 1 个,耗时是 0.001s。
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
上述是给了一个可以通过的例子,而如果测试不通过,输出是怎样的呢,如下所示:
# 添加中间名
def get_formatted_name(first, middel, last):
full_name = first + ' ' + middle +