单元测试框架提供以下功能:
1. 用例的组织和执行(如何定义一条测试用例,如何控制这些用例的执行)
2. 丰富的断言方法(执行结果和预期结果的比较)
3. 丰富的日志(失败原因,执行结果如:总执行时间、失败用例数,成功用例数等)
PS:单元测试框架不仅可以用来写测试用例,凡是涉及到自动化测试的工作,都可以由单元测试框架完成,如:web自动化测试、app自动化测试、接口自动化测试等
待测文件:
calculate.py文件
1 class Count: 2 def __init__(self, a, b): 3 self.a = a 4 self.b = b 5 6 def add(self): 7 return self.a + self.b
使用unittest框架进行测试:
test.py文件 from calculate import Count import unittest # 引入unittest模块 class TestAdd(unittest.TestCase): # 创建TestAdd类,继承TestCase类 def setUp(self): # setUp()方法,用于测试用例执行前的初始化工作 print('start') def tearDown(self): # tearDown()方法,用于测试用例执行之后的善后工作 print('end') def test_add_1(self): # 测试方法,必须以test开头 print('add 1') self.assertEqual(Count(2, 4).add(), 6) # 使用unittest框架提供的assertEqual()方法进行断言,assertEqual()方法由父类TestCase类继承而来,所以可以通过self调用 if __name__ == '__main__': unittest.main() # 调用unittest的main()来执行测试用例
规则:
1. 引入unittest模块
2. 创建一个测试类,继承unittest的TestCase类
3. 编写setup和teardown方法,用于初始化和收尾工作
4. 创建一个测试方法,必须以test开头
5. 断言
6. main方法按ASCII顺序查找,并执行测试用例
测试结果中:
. 表示一条运行成功的用例
F 表示一条运行失败的用例.
E 表示一条运行错误的用例
s 表示一条运行跳过的用例