首页 > 技术文章 > Python3之unittest单元测试框架

jxu25 2019-06-13 11:34 原文

1. unittest 的定义

unittest 被称作 Python 版本的 JUnit ,有时也被叫做“PyUnit”。主要是用于 Python 语言程序的单元测试。

2. unittest 框架的 4 个重要概念

官方文档给出了 unittest 框架中 4 个重要的概念,介绍如下。

1)test fixture(测试固件)

一个 test fixture 代表一个或多个测试执行前的准备动作和测试结束后的清理动作 ,例如,创建数据库连接,启动服务进程,测试环境好清理或者关闭数据库连接等。

2)test case(测试用例)

一个 test case 就是一个最小测试单元,也就是一个完整的测试流程。针对一组特殊的输入进行特殊的验证与响应。通过继承 unittest 提供的测试基类(TestCase),可以创建新的测试用例。

3)test suit(测套件)

一个 test suit 就是一组测试用例,一组测试套件或者两者共同组成的集合。它的作用是将测试用例集合到一起,然后一次性执行集合中所有的测试用例。

4)test runner(测试运行器)

一个 test runner 由执行设定的测试用例和将测试结果提供给用户两部分功能组成。

3. 单元测试加载方法

两种单元测试的加载方法:

1)直接通过 unittest.main() 方法加载单元测试的测试模块,测试方法执行顺序按照方法名的字符串的ASCII码升序排序。

2)将所有的单元测试用例(Test Case)添加到测试套件(Test Suite)集合中,然后一次性加载所有测试对象。

4. 测试用例

TestCase 作为 unittest 单元测试框架中测试单元的运行实体,单元测试脚本编写员可以通过他派生出自定义的测试过程和方法。TestCase 子类从父类继承的几个特殊方法,在测试用例执行时均会被一次执行,

TestCase 类中定义的几个特殊方法如下。

1)setUp( ):每个测试方法运行前运行,测试前的初始化工作。

2)tearDown( ):每个测试方法运行结束后运行,测试后的清理工作。

3)setUpClass( ):所有测试方法运行前运行,单元测试前期准备,必须使用 @classmethod 装饰器进行装修饰,setUp( )函数之前执行,整个测试过程只执行一 次。

4)tearDownClass( ):所有测试方法结束后运行,单元测试后期清理,必须使用 @classmethod 装饰器进行装修饰,tearDown( )函数之后执行,整个测试过程只执行一次。

  

 

推荐阅读