unittest测试框架之测试用例类

unittest测试框架之测试用例类

  1. 自己定义的类只要继承unittest中的TestCase,那么这个类就是一个测试用例类
  2. 测试用例类中,以test开头的方法就是一条测试用例
  3. 用例执行是否通过的评判标准-->>断言异常

先准备一个简单功能函数测试两数相加

def sum(a, b):
    return a + b

一、测试用例类(自定义的测试用例类要继承unittest中的TestCase)

class SumTestCase(unittest.TestCase):
    pass

二、测试用例(以test开头的方法就是一条测试用例)

测试用例类中,以test开头的方法就是一条测试用例

    def test_sum(self):
        pass
①:准备用例数据
        # 1.参数(元组类型)
        data = (1, 2)
        # 2.预期结果
        expected = 2
②:执行功能函数(对元组data进行拆包),获取实际结果
        result = sum(*data)
③:通过断言比对预期结果和实际结果
        self.assertEqual(expected, result)
* 对③做一个小优化
* 比对结果时,如果如实际结果不符合,则会发生断言异常,
* 这时候就可以通过捕获异常来打印用例是否通过,
* 捕获完异常一定要再抛出异常
        try:
            self.assertEqual(expected, result)
        except AssertionError as a:
            print("用例未通过")
            raise a
        else:
            print("用例通过")

继承父类的方法:

    def setUp(self):
        # 每条用例执行之前都会执行
        print("用例{}开始执行--".format(self))

    def tearDown(self):
        # 每条用例执行之后都会执行
        print("用例{}执行结束--".format(self))

    @classmethod
    def setUpClass(cls):
        # 当成测试用例类中的用例执行之前,会执行改方法
        print("-----setup---classs-----")

    @classmethod
    def tearDownClass(cls):
        # 当成测试用例类中的用例执行完毕,会执行改方法
        print("-----teardown---classs-----")

如果直接运行这个文件,就是用unittest中的main函数来执行测试用例,也可以直接运行测试方法

if __name__ == '__main__':
    unittest.main()
原文地址:https://www.cnblogs.com/desireyang/p/12090313.html