软件测试学习教程:单元测试之UnitTest测试框架

发表于:2021-2-08 09:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:黑马程序员    来源:知乎

  单元测试的概念
  · 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
  · 对于单元测试中单元的含义,要根据实际情况去判定其具体含义。
  · 一个单元可能是功能模块、类、方法(函数)等。
  单元测试工具
  不同的编程语言都有比较成熟的单元测试框架,语法规则有些差别,其核心思想都是相通的。常见的单
  元测试框架有:
  · Java语言:Junit、TestNG
  · Python语言:UnitTest、Pytest
  · UnitTest单元测试框架
  一、UnitTest框架介绍
  UnitTest是Python自带的一个单元测试框架,用它来做单元测试。也经常应用到UI自动化测试和接口自
  动化测试中,用来管理和维护测试用例脚本
  使用UnitTest框架的好处:
  1. 能够组织多个用例去执行(可以把多条测试用例封装成一个测试套件,实现批量执行测试用例)
  2. 提供了丰富的断言方法,方便对用例执行的结果进行判断
  3. 能够生成HTML格式的测试报告
  4. 使用Fixture功能可以减少代码的冗余
  UnitTest核心要素:
  TestCase
  TestSuite
  TestRunner
  TestLoader
  二、TestCase
  TestCase就是表示测试用例
  案例
  定义一个实现加法操作的函数,并对该函数进行测试
  如何定义测试用例
  1.导包:importunittest
  2.定义测试类:新建测试类必须继承unittest.TestCase
  3.定义测试方法:测试方法名称命名必须以test开头
  示例代码:
  如何执行测试用例
  方式一:使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行
  方式二:调用unittest.main()来运行
  三、TestSuite
  说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite使用:
  · 实例化:suite=unittest.TestSuite() (suite:为TestSuite实例化的名称)
  · 添加用例:suite.addTest(ClassName("MethodName"))(ClassName:为类名;MethodName:为方法名)
  · 添加扩展:suite.addTest(unittest.makeSuite(ClassName))(搜索指定ClassName内test开头的方法并添加到测试套件中)
  · 提示:TestSuite需要配合TestRunner才能被执行
  四、TextTestRunner
  说明:TextTestRunner是用来执行测试用例和测试套件的使用:
  1.实例化:runner=unittest.TextTestRunner()
  2.执行:runner.run(suite)#suite:为测试套件名称
  示例代码:
  五、Fixture
  说明:Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture
  Fixture控制级别:
  方法级别使用:
  类级别使用:
  模块级别【了解】使用:
  示例代码使用:
  六、UnitTest 断言
  什么是断言
  概念:让程序代替人为判断测试程序执行结果是否符合预期结果的过程UnitTest 中提供了非常丰富的断言方法,但是常用的也就那么几个,并且使用起来也比较简单。
  使用方式:
  断言方法经在unittest.TestCase 类中定义好了,而且我们自定义的测试类已经继承了 TestCase ,所以在测试方法中直接调用即可。
  七、UnitT est 参数化
  · 通过参数的方式来传递数据,从而实现数据和脚本分离,也可以把测试数据定义到数据文件或者数据库中。
  · 针对同一个测试方法,可以实现用例的重复执行,减少代码冗余,提高测试效率。
  · unittest测试框架,本身不支持参数化,但是可以通过安装 unittest 扩展插件rameterized 来实现。
  安装parameterized
  pip install parameterized
  parameterized 使用方式
  · 导包:from par ameterized import par ameterized
  · 使用@par ameterized.e xpand 装饰器可以为测试函数的参数进行参数化示例代码
  示例代码
  八、生成HTML 测试报告
  测试脚本执行完后,可以生成以 HTML( 网页 ) 格式的测试报告
  为什么要生成测试报告:
  · 测试报告是本次测试结果的体现形态
  · 测试报告内包含了有关本次测试用例的详情
  使用HTML TestRunner 生成测试报告
  使用方法:
  示例代码:

  上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号