目录
一.unittest的四大组件
1.TestCase:
测试用例,通过继承unittest.TestCase,来实现用例的继承,在Unittest中,测试用例都是通过test来识别的。
2.TestSuite:
用来组装测试用例 - addTest
一个功能的验证往往需要多个测试用例
3.TestRunner:
运行器,通过TextTestRunner类提供的run()方法来执行test suite/test case,一般通过runner来调试unittest.main()运行所有内容。
4.TestFixture:
对一个测试用例环境的搭建和销毁,就是一个fixture,通过setUp()和tearDown()方法实现
二.unittest常用类
1.TestCase,测试用例的父类,测试类需要继承它才有执行测试的能力
2.TestSuite,该类用于创建测试套件,可以将多个测试用例加入一个测试套件中
3.unnitest.main()方法可以运行所有test开头的方法
4.TextTestRunner,用该类的run()方法来运行TestSuite添加好的方法
5.skip装饰器,有时在某些系统环境上运行时,某些测试用例是不能通过的,但这并不是我们的产品或用例导致,而是环境的不兼容性问题,这时可以用skip装饰器跳过这些测试用例
三.unittest框架使用示范
被测试代码是一个简单的加法代码,如图
class Function:
def add(self,a,b):
return a + b
测试代码如下
import unittest
from my_unittest.function import Function
class TestFunction(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("每个测试类执行之前调用该方法“)
@classmethod
def tearDownClass(cls):
print("每个测试类执行之后调用该方法“)
def setUp(self):#重写父类的方法setUp(),对于当前的测试用例进行一些初始化工作
self.func = Function()
print("每个测试用例执行之前,均会调用该方法“)
def tearDown(self):
self.func = none #每个测试用例执行之后调用该方法,关闭对象,释放资源
print("每个测试用例执行之后,均会调用该方法“)
de