什么是单元测试?
单元测试负责最小的软件测试单元(模块)进行验证,它使用软件设计文档中对模块的描述做为指南,对重要的程序分支进行测试以发现模块中的错误。html
python拥有诸多单元测试框架,如doctest、unittest、pytest、nose等,其中最经常使用就是python自带的unittest框架(也被称为PyUnit框架),Python2.1及其之后的版本已将unittest做为标准模块放入python开发中。python
基本框架代码以下框架
import unittest class Test(unittest.TestCase): def setUp(self): print('hello') def tearDown(self): print('bye') def test_001(self): print('001') def test_002(self): print('002') def test_003(self): print('003') def func(self): print('func') if __name__ == '__main__': unittest.main()
1.引入unittest模块,建立一个类A继承unittest的TestCase类,咱们能够将A类当作是对待特定类的测试的集合
2.setup() 方法用于测试用例执行前的初始化工做
3.teardown() 方法用于测试用例执行以后的善后工做
4.unittest提供了全局main()方法,使用它能够方便地将一个单元测试模块变成能够直接运行的测试脚本
5.main()方法使用TestLoader类来搜索全部包含在模块以”test”命名开头的测试方法,并自动执行它们post
四个基本概念
1.Test Fixture
测试用例环境的搭建和销毁,就是一个fixture,经过setUp()方法来实现数据的初始化创建以及环境准备,经过tearDown()方法清除数据结束测试。单元测试
2.TestCase
一个TestCase的实例就是一个测试用例,测试用例就是一个完整的测试流程,包括测试前的准备环境搭建,包括测试前的准备环境搭建(setUp)、实现测试过程的代码(run),以及测试之后环境的还原(tearDown)。测试
3.Test Suiteui
一个功能的验证是须要多个测试用例,可把多个测试用例集合起来执行,这就产生了测试套件TestSuite的概念,Test Suite用来组装单个测试用例,能够经过addTest加载TestCase到TestSuite中,从而返回一个TestSuite实例url
4.Test Runner
在unittest单元测试框架中,经过TestTextRunner类提供的run()方法来执行测试用例。spa