分类目录:《系统学习Python》总目录
unittest
是Python的内置模块,这意味着我们不需要再进行安装。unittest
支持自动化测试、测试用例间共享setUp
(测试前的初始化工作)和tearDown
(测试结束后的清理工作)代码块,可以将测试用例合并为集合执行,然后将测试结果展示在报告中。
unittest
框架的4个重要概念
- 测试固件test fixture:对于测试固件,我们可以将其理解为在测试之前或者之后需要做的一些操作。例如测试执行前,可能需要打开浏览器、创建数据库连接等;测试结束后,可能需要清理测试环境、关闭数据库连接等。unittest中常用的test fixture有
setUp
、tearDown
、setUpClass
、tearDownClass
。前面两个是在每个用例执行之前或之后执行,后面两个是在类执行之前或之后执行。 - 测试用例test case:测试用例是在
unittest
中执行测试的最小单元。它通过unittest
提供的assert
方法来验证一组特定的操作或输入以后得到的具体响应。unittest
提供了一个名为TestCase
的基础类,可以用来创建测试用例。unittest
中测试用例的方法必须以test开头,并且执行顺序依照的是方法名的ASCII值排序。 - 测试套件test suite:测试套件就是一组测试用例,作用是将多个测试用例放到一起,执行一个测试套件就可以将这些测试用例全部执行。
- 测试运行器test runner:测试运行器用来执行测试用例,并返回测试用例执行的结果。它还可以用图形、表格、文本等方式把测试结果形象地展现出来,如
HTMLTestRunner
。
unittest
用例示例
下面通过代码来看一下unittest
用例的基本样式:
import unittest
class MyTestClass(unittest.TestCase):
def setUp(self):
print('setUp')
def test_first(self):
self.assertEqual('hy592070616', 'hy592070616')
def tearDown(self):
print('tearDown')
if __name__ == '__main__':
unittest.main()
执行后输出如下:
setUp
tearDown
Ran 1 test in 0.000s
OK
Process finished with exit code 0
其中,输出的OK
代表断言成功,setUp
和tearDown
为程序执行的输出信息。