当前位置: 首页 > news >正文

测开学习DAY26

黑马程序员网课学习(Python)

一、unittest框架组成(续)

1. TestLoader (测试加载)
(1)作用

和 TestSuite 的作用是一样的, 对 TestSuite 功能的补充, 用来组装测试用例

(2)步骤
  • 导包
  • 实例化测试加载对象并添加用例   ---> 得到的是 suite 对象
  • 实例化 运行对象
  • 运行对象执行套件对象
(3)代码实现

在一个项目中 TestCase(测试用例) 的代码,一般放在一个单独的目录 (case)

2. Fixture(测试夹具)

Fixture(测试夹具) 是一种代码结构,在某些特定的情况下会自动执行

方法级别和类级别的前后的方法,不需要同时出现,根据用例代码的需要自行的选择使用

(1)方法级别[掌握]

在每个测试方法(用例代码) 执行前后都会自动调用的结构

(2)类级别[掌握]

在每个测试类中所有方法执行前后,都会自动调用的结构(在整个类中执行之前执行之后各一次)

(3)模块级别[了解]

模块: 代码文件

在每个代码文件执行前后执行的代码结构

(4)案例

二、断言

让程序代替人工自动的判断预期结果和实际结果是否相符

断言的结果有两种:

  •  True, 用例通过
  •  False, 代码抛出异常, 用例不通过

在 unittest 中使用断言, 都需要通过 self.断言方法  来试验

1. assertEqual

self.assertEqual(预期结果, 实际结果)   # 判断预期结果和实际结果是否相等

  • 如果相等, 用例通过 
  • 如果不相等,用例不通过, 抛出异常
2. assertIn

self.assertIn(预期结果, 实际结果)   # 判断预期结果是否包含在实际结果中

  • 包含 ,用例通过
  • 不包含, 用例不通过, 抛出异常

3. 案例

三、参数化

参数化:在测试方法中, 使用变量来代替具体的测试数据, 然后使用传参的方法将测试数据传递给方法的变量

好处: 相似的代码不需要多次书写.

工作中场景:

  • 测试数据一般放在 json 文件中
  • 使用代码读取 json 文件,提取我们想要的数据 ---> [(), ()] or [[], []]
1. 安装插件

unittest 框架本身是不支持参数化, 想要使用参数化,需要安装插件来完成

验证:

2. 参数化代码
  • 导包 unittest/ pa
  • 定义测试类
  • 书写测试方法(用到的测试数据使用变量代替)
  • 组织测试数据并传参

四、跳过

对于一些未完成的或者不满足测试条件的测试函数和测试类, 不想执行,可以使用跳过

使用方法:装饰器完成,代码书写在 TestCase 文件

五、测试报告

1. 自带的测试报告
2. 生成第三方的测试报告

(1)获取第三方的测试运行类模块 , 将其放在代码的目录中

(2)导包 unittest

(3)使用套件对象, 加载对象去添加用例方法

(4)实例化第三方的运行对象 并运行套件对象

3. 测试报告(中文)

4. 流程总结

(1)组织用例文件(TestCase 里边), 书写参数化, 书写断言, 书写 Fixture, 书写 跳过, 如果单个测试测试文件, 直接运行, 得到测试报告, 如果有多个测试文件, 需要组装运行生成测试报告

(2)使用 套件对象组装, 或者使用 加载对象组装

(3)运行对象运行

         ① 运行对象 = 第三方的运行类(文件对象(打开文件需要使用 wb 方式))

         ② 运行对象.run(套件对象)

http://www.dtcms.com/a/585427.html

相关文章:

  • VBA经典应用69例应用9:读取工作表中个数不定的数据
  • 网站建设策划书5000字蚂蚁网站建设
  • 【Janet】比较运算符
  • 05 kafka 如何存储较大数据记录
  • 使用Unity ASE插件设置数值不会生效的问题
  • 【ZeroRange WebRTC】WebRTC 信令安全:实现原理与应用(深入指南)
  • 关于Flutter与Qt for python 的一些技术、开源、商用等问题
  • 国外免费建站网站不用下载设计师培训心得
  • 深入解析 LeetCode 1572:矩阵对角线元素的和 —— 从问题本质到高效实现
  • Android Input ANR分析
  • Dify 添加 Google cloud 模型供应商
  • 大语言模型提示词技巧总结
  • 高职无人机应用技术专业职业发展指南
  • 网站流量软件银行门户网站建设
  • MySQL的CASE WHEN函数介绍
  • 逻辑方程结构图语言的机器实现(草稿)
  • 计算机组成原理---中央处理器
  • 合肥建设学校官方网站网站栏目规划图
  • windows11配置wsl安装ubuntu20.04
  • Go语言中的函数
  • 建瓯市建设局网站国内团购网站做的最好的是
  • XMSRC4392_VC1:4通道192KHz ASRC及768KHz SSRC音频采样率转换器产品介绍
  • 来宾绍兴seo网站托管方案手机怎么弄微信公众号
  • C 标准库 - <ctype.h>
  • Xshell效率实战:SSH管理秘籍(二)
  • 克隆整个macOS系统到新磁盘
  • 详解【限流算法】:令牌桶、漏桶、计算器算法及Java实现
  • Spring Cloud Config
  • 河南卫生基层系统网站建设企业资质查询系统官网
  • 临沂网站改版购买商标去哪个网站