黑马程序员技术交流社区

标题: 【郑州校区】UnitTest基本使用 [打印本页]

作者: 我是楠楠    时间: 2019-9-19 11:38
标题: 【郑州校区】UnitTest基本使用
【郑州校区】UnitTest基本使用
目标
1.  掌握UnitTest框架的基本使用方法
1. UnitTest框架
1.1 什么是框架?
说明:
1. 框架英文单词framework
2. 为解决一类事情的功能集合
1.2 什么是UnitTest框架?
概念:UnitTest是Python自带的一个单元测试框架,用它来做单元测试。
1.3为什么使用UnitTest框架
1. 能够组织多个用例去执行
2. 提供丰富的断言方法
3. 能够生成测试报告
1.4 UnitTest核心要素
1. TestCase
2. TestSuite
3. TestRunner
4. TestLoader
5. Fixture
2. TestCase
说明:TestCase就是测试用例
2.1 案例
定义一个实现加法操作的函数,并对该函数进行测试
2.2定义测试用例
1. 导包:import  unittest
2. 定义测试类:新建测试类必须继承unittest.TestCase
3. 定义测试方法:测试方法名称命名必须以test开头
2.3执行测试用例
方式一:
使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行方式二:
调用  unittest.main()  来运行
思考:如何同时运行多个测试用例?
3. TestSuite
说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite使用:
1. 实例化:    suite  =  unittest.TestSuite()
(suite:为TestSuite实例化的名称)
2. 添加用例:suite.addTest(ClassName("MethodName"))
(ClassName:为类名;MethodName:为方法名)
3. 添加扩展:suite.addTest(unittest.makeSuite(ClassName))
(搜索指定ClassName内test开头的方法并添加到测试套件中)
提示:TestSuite需要配合TestRunner才能被执行
4. TextTestRunner
说明:TextTestRunner是用来执行测试用例和测试套件的使用:
1. 实例化:  runner  =  unittest.TextTestRunner()
2. 执行:        runner.run(suite)    #  suite:为测试套件名称
需求
将test01.py..test10.py共10条用例,将这10条用例批量执行;
问题
1. 使用suite.addtest(unittest.makeSuite(className))导入10条测试类
2. .addtest()需要添加10次
5. TestLoader
说明:
用来加载TestCase到TestSuite中,即加载满足条件的测试用例,并把测试用例封装成测试套件。
使用unittest.TestLoader,通过该类下面的discover()方法自动搜索指定目录下指定开头的.py文件
并将查找到的测试用例组装到测试套件;
用法:
suite  =  unittest.TestLoader().discover(test_dir,  pattern='test*.py')
自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件
test_dir:  为指定的测试用例的目录
pattern:为查找的.py文件的格式,默认为'test*.py'
也可以使用unittest.defaultTestLoader  代替  unittest.TestLoader()
运行:
runner  =  unittest.TextTestRunner() runner.run(suite)
5.1 TestLoaderTestSuite区别
1. TestSuite需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法)
2. TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法;
6. 总结
1. UnitTest框架的作用?
2. 如何定义测试用例?
3. 如何执行测试用例?
4. 如何使用TestSuite?
5. 如何运行TestSuite?
6. 如何使用TestLoader?
7. TestLoader与TestSuite的区别?

作者: powerjjg    时间: 2020-1-11 17:11
很好的解答




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2