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------')

相关