当前位置 : 主页 > 编程语言 > python >

系统学习Python——单元测试unittest:框架结构

来源:互联网 收集:自由互联 发布时间:2022-06-15
​ ​​unittest​​​是Python的内置模块,这意味着我们不需要再进行安装。​​unittest​​​支持自动化测试、测试用例间共享​​setUp​​​(测试前的初始化工作)和​​tearDown​​


​​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​​为程序执行的输出信息。

网友评论