测试固件(Test Fixture)
也称用例包裹方法
测试固件是固定的测试代码,整合了代码的公共部分
用于处理测试执行之前的准备工作和测试执行后的清理工作
如果代码需要在整个模块之前做,可以使用setUpModule,把代码放到方法体中
如果代码需要每个类之前做,可以使用setUpClass,把代码放到方法体中
如果代码需要每个用例之前做,可以使用setUp,把代码放到方法体中
测试固件的分类
setUpModule() -- 初始化工作
在执行模块中所有测试类之前执行且只执行一次的代码
放在测试类的外边、前面
tearDownModule() -- 结束初始化工作
在执行完模块中所有测试类之后执行且只执行一次的代码
放在测试类的外边、前面
setUpClass(cls)
在测试类加载时执行只执行一次
用于实现测试前的初始化工作
必须使用@classmethod修饰
形参使用cls或self均可,默认cls,常用self
tearDownClass(cls)
在测试类运行结束时执行只执行一次
用于实现测试类执行完成时的清理工作
必须使用@classmethod修饰
形参使用cls或self均可,默认cls,常用self
setUp(self)
用于实现每个测试方法执行前的准备工作
每个测试方法执行前执行一次
形参必须是self
tearDown(self)
用于实现每个测试方法执行完毕后的清理工作
每个测试方法执行完成后执行一次
形参必须是self
测试固件的使用
"""
测试固件的使用
"""
import unittest
class Ceshi(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('本类中所有测试用例执行前只做一次的代码setUpClass')
def setUp(self) -> None:#-> None可以不写 表示返回值
print('本类中每一个测试用例执行前先做的代码setUp')
def tearDown(self) -> None:
print('本类中每一个测试用例执行完后做的代码tearDown')
@classmethod
def tearDownClass(cls) -> None:
print('本类中所有的测试用例执行完毕后才做一次的代码tearDownClass')
def test1(self):#Ceshi类的成员方法,test开头叫做测试用例
print('第一个测试用例test1')
def test2(self):
print('第二个测试用例test2')
# 执行测试
if __name__=='__main__':
unittest.main()