unittest测试框架之测试用例类
unittest测试框架之测试用例类
- 自己定义的类只要继承unittest中的TestCase,那么这个类就是一个测试用例类
- 测试用例类中,以test开头的方法就是一条测试用例
- 用例执行是否通过的评判标准-->>断言异常
先准备一个简单功能函数测试两数相加
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()