unittest框架
unittest框架
1、什么是单元测试
单元测试就是对单个模块或者单个类或者单个函数进行测试,一般是开发来做的,按照阶段来分,单元测试->集成测试->系统测试->验收测试;
2、unittest介绍
unittest是python自带的模块,不需要安装,直接导入使用即可;
最核心的四个概念:
TestCase:一个testcase的实例就是一条测试用例;
TestSuite: 多条测试用例的集合;TestLoader:用来加载TestCase到TestSuite中;
TestRunner: 用来执行测试用例的;
由TextTestRunner来执行TestSuite,测试的结果保存在TextTestResult中
TestFixture:测试用例环境的搭建和销毁;如:setUp测试前准备环境的搭建,run
执行测试代码,tearDown测试环境的销毁;
2.1 TestCase
1、测试用例定义的规范:
定义一个类,这个类必须要继承unittest.TestCase这个类
测试类中,定义一个以test开头的方法,就是一条测试用例;
定义一个测试用例类
点击查看代码
class TestDome(unittest.TestCase):
def test_01(self):
# 第一步:准备用例数据
# 用例的入参
params = {'x': 1, 'y': 2, 'method': '+'}
# 预期结果
expected = 3
# 第二步:调用功能函数或者接口,获取实际结果
result = counter(**params)
# 第三步:比对预期结果和实际结果是否一致(断言)
# assert expected == result
self.assertEqual(expected, result)
2.2 TestSuite
1、套件的定义:suite = unittest.TestSuite()
2、往套件中添加用例:
1、添加测试类到测试套件
load.loadTestsFromTestCase
2、添加测试模块到测试套件
load.loadTestsFromModule
3、添加一个测试的目录
load.discover
测试用例目录下面的用例模块必须要使用test开头(也可以通过参数pattern指定查找用例模块的规则,pattern='test*.py')
3、用例加载器:unittest.TestLoader
2.3 TestRunner
测试运行程序:unittest.TextTestRunner
点击查看代码
# 创建一个测试运行程序
runner = unittest.TextTestRunner()
runner.run(suite)
2.4 TestFixture
测试夹具(测试用例的前后置方法):
setUp:用例级别的前置方法,每条用例执行之前都会执行
setUpClass:测试类级别的前置方法,每个测试类中的用例执行之前都会执行(只会执行一次)
tearDown:用例级别的后置方法,每条用例执行完之后都会执行
tearDownClass:测试类级别的后置方法,每个测试类中的用例全部执行完之后会执行(只会执行一次)
点击查看代码
class TestDome(unittest.TestCase):
def test_01(self):
print('------------test--01---------------')
def test_02(self):
print('------------test--02---------------')
def setUp(self) -> None:
print('---setUp------')
@classmethod
def setUpClass(cls) -> None:
print('---setUpClass------')
def tearDown(self) -> None:
print('---tearDown------')
@classmethod
def tearDownClass(cls) -> None:
print('---tearDownClass------')