文章目录
今日目标
- 能够使用UnitTest定义测试用例并运行
- 记住TestSuite作用及使用方式
- 记住TextTestRunner作用及使用方式
- 了解TestLoader作用及使用方式
- 掌握定义方法级别的Fixture
- 掌握定义类级别的Fixture
- 了解定义模块级别的Fixture
- 了解断言的概念
- 能够使用assertEqual、assertIn进行断言
UnitTest 框架
- 什么是框架?
- 框架英语单词是framework
- 为解决一类事情的功能集合
- 什么是UnitTest框架?
- 概念:UnitTest是Python自带的一个单元测试框架,用它来做单元测试。
- 为什么使用UnitTest框架?
- 能够组织多个用例去执行
- 提供丰富的断言方法
- 能够生成测试报告
- UnitTest核心要素
- TestCase
- TestSuite
- TestRunner
- TestLoader
- Fixture
1. TestCase(测试用例)
- 代码步骤
1.导包:import unittest
2.定义测试类:新建测试类必须继承unittest.TestCase
3.定义测试方法:测试方法名称命名必须以test开头
- 执行方法
1.类后 unittest 运行,类后 unittest 运行
2.运行所有的方法运行所有的方法
3.命令行运行,测试用例增加 main 方法
调用 unittest.main() 来运行
- 代码演示1
import unittest
def add(x,y):
num = x + y
return num
# 类继承 unittest.TestCase
class TestADD01(unittest.TestCase):
def test_add0101(self):
number = add(2, 3)
print('number1的值:', number)
def test_add0102(self):
number = add(2,2)
print('number2的值是:', number)
if __name__ == '__main__':
unittest.main()
- 代码演示2
import unittest
def add(x,y):
num = x + y
return num
# 类继承 unittest.TestCase
class TestADD02(unittest.TestCase):
def test_add0201(self):
number = add(1,1)
print('number1的值是:', number)
def test_add0202(self):
number = add(2,2)
print('number2的值是:', number)
if __name__ == '__main__':
unittest.main()
2. TestSuite(测试套件)
说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite
使用:
1. 实例化: suite = unittset.TestSuite()
(suite:为TestSuite实例化的名称)
2. 添加用例:
方法一:suite.addTest(ClassName("MethodName"))
(ClassName:为类名;MethodName:为方法名)
方法二:suite.addTest(unittest.makeSuite(ClassName))
(搜索指定ClassName类名内test开头的方法并添加到测试套件中)
提示:TestSuite需要配合TestRunner才能被执行
- 代码演示
import unittest
from hm01_test_add import TestADD01
from hm02_test_add import TestADD02
# 组装测试用例
# 1.实例化一个suite对象
suite = unittest.TestSuite()
# 2.增加测试用例
# 方式一: suite.addTest(ClassName("MethodName"))
suite.addTest(TestADD01("test_add0101"))
suite.addTest(TestADD01("test_add0102"))
# 3.增加测试用例 方式二: suite.addTest(unittest.makeSuite(ClassName))
suite.addTest(unittest.makeSuite(TestADD02))