Python中 ddt 数据驱动的小细节

2023-11-10

文章目录

  • 前言

  • 一、什么是DDT?

  • 二、安装ddt

  • 三、基本原理和用法

  • 总结


前言

记录ddt用法的一些小细节


一、什么是DDT?

DDT是 “Data-Driven Tests”的缩写,数据驱动测试。

既然是测试,那么就要与单元测试框架一起使用

1、运用场景

测试框架里,同一个方法,里面不同的数据,就可以不用写多个测试方法


二、安装ddt

ddt属于第三方模块,需要安装,安装方法:


方法一:在cmd命令窗口中输入:pip install ddt
方法二:pycharm中打开终端,输入:pip install ddt


三、基本原理和用法

1、原理

类似于for循环,把循环出来的数据,一个一个的填到需要使用的地方。

注意:循环出来的是一组数据,以组为单位,因此在一个列表中一组数据与另一组数据的个数是对应的。)

2、用法

(1)使用时,先在类名上,声明ddt,写法:@ddt;

(2)再在函数上,声明数据,写法:@(*数据列表名称) 例如:@(*list1);----注意这里有星号,把数据解包。

(注意:在函数的括号了传入一个任意名称的变量(类似于 for i in list:里面的i,这个i可以是任意的变量名称。)

3、思想

ddt这个思想,其实是装饰器思想的运用。

语法:

@ddt
class XX(unittest.TestCase):
   @data(*测试数据列表)    
   def test_xx(self,new_data)  # 这里的new_data相当于for循环里面的i,一个变量去接收

import unittest
from ddt import ddt, data
from see import eat

datas = [('肉', '喜欢吃肉'), ('苹果', '喜欢吃肉'), ('葡萄', '喜欢吃葡萄')]


@ddt
class Dog_eat(unittest.TestCase):
    @data(*datas)
    def test_eat(self, new_data):
        act_reslut = eat(food=new_data[0])
        exc_reslut = new_data[1]
        self.assertEqual(act_reslut, exc_reslut)

举例: 


总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中 ddt 数据驱动的小细节 的相关文章

随机推荐

  • Linux下多线程编程互斥锁和条件变量的简单使用

    Linux下的多线程遵循POSIX线程接口 称为pthread 编写Linux下的多线程程序 需要使用头文件pthread h 链接时需要使用库libpthread a 线程是进程的一个实体 是CPU调度和分派的基本单位 它是比进程更小的能
  • 自己写一个简单的弹窗页面

    最终效果 我使用的vue的js做绑定处理 虽然现在各种 弹窗插件到处都是 但是本着造轮子的本心还是写了一点 这段内容是17年的时候写的 时间跨度稍微有点大 表在意了 基本思路 1 为需要添加遮罩的页面添加一个组件 这个组件绑定在isShow
  • angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天 我们要讲的是angualr2的pipe这个知识点 例子 这个例子包含两个pipe 一个是stateful 一个是stateless 是直接复制官方的例子 最新的官网文档已经将其改为了pure和impure 并移除了面向对象的比喻 个人
  • 基于SSM实现校园互助论坛平台

    作者简介 Java 前端 Python开发多年 做过高程 项目经理 架构师 主要内容 Java项目开发 Python项目开发 大学数据和AI项目开发 单片机项目设计 面试技术整理 最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码
  • JAVA 使用web3j接入以太坊(一)

    第一步先创建maven项目 在项目的pom文件依赖中添加web3j
  • JWT简介及使用

    JWT简介及使用 JWT JWT能做什么 认证流程 为什么需要JWT jwt结构 JWT使用 java jwt jjwt JWT工具类编写 JWT整合springboot JWT整合Springboot优化 JWT jwt json web
  • 机器学习实战python版第二章示例:手写识别系统

    手写识别系统和前面的例子差不多 我们所需要做的就是把图数据转换成一维数组数据 数据准备 def img2vector filename returnVect zeros 1 1024 创建一行1024列的数组 fr open filenam
  • tcpdump 移植

    一 环境介绍 1 1 宿主机 1 2 嵌入式平台 1 3 交叉工具链 二 交叉编译 2 1 先编译 tcpdump 4 8 1 依赖的模块 2 2 编译 tcpdump 4 8 1 三 使用测试 一 环境介绍 1 1 宿主机 Ubuntu
  • 如何用IDEA配置数据库链接

    版本 idea 2021 2 MySQL5 7 很多小伙伴在idea中写SQL语句会爆红 可能就是因为idea没有与数据库进行连接 导致不识别数据库中的关键字 下面讲解一下如何配置idea与数据库的连接 步骤如下 第一步 打开idea 找到
  • Excel:如何实现分组内的升序和降序?

    一 POWER 1 构建辅助列D列 在D2单元格输入公式 POWER 10 COUNTA A 2 A2 3 C2 2 选中B1 D10 注意不能宣导A列的合并单元格 进行以下操作 3 删除辅助列即可 二 COUNTA 第一步 D2建立辅助列
  • SQL Server期末复习要点(一)

    1 SQL Server所提供的服务中 MSSQLServer是最核心的一部分 2 SERVER2005常规标识符是哪些 算术运算符 逻辑运算符 赋值运算符 字符串串联运算符 按位运算符 一元运算符及比较运算符等 3 聚合函数的使用 max
  • DirectX教程(8):全屏显示

    使游戏全屏显示很容易 但是需要更改程序的一些细节 并添加几行代码 在本节中 我们将介绍两件事 首先 我们将介绍如何全球化你的屏幕分辨率以及为什么要这样做 其次 我们将介绍如何使窗口进行全屏模式并再次返回的机制 设置屏幕尺寸 在你的Direc
  • 刷脸智慧化经营助商家高效运营店铺新方式

    迈入5G后 网速在变 生活方式在变 商家的运营模式也应该做出改变 智慧数字经营 助力商家高效运营店铺的新方式 时代的发展速度之快 越来越出乎意料 从2G到3G 再从3G到4G 乃至现在的5G 发展从未停滞 一直在快步向前 快到我们还在对4G
  • leetcode——189.轮转数组(C语言2种思路)

    文章目录 1 题目 2 解法1 开辟新数组 2 1 思路 2 2 代码实现 3 解法2 翻转法 3 1 思路 3 2 代码实现 1 题目 给定一个整数数组 nums 将数组中的元素向右轮转 k 个位置 其中 k 是非负数 示例1 输入 nu
  • maven 打包时后缀加时间

    规范的包名对开发及运维人员的记录及备份是有益的 如何在maven 打包时后缀加时间 在原有打包plugin后面加如下代码
  • 数据结构:面试题目-专项练习-栈-习题练习

    1 下列关于栈叙述正确的是 正确答案 D 你的答案 D 正确 算法就是程序 设计算法时只需要考虑数据结构的设计 设计算法时只需要考虑结果的可靠性 以上三种说法都不对 解析 A 程序是数据结构 算法 错 B C 设计一个算法时 考虑的因素很多
  • 迅为i.MX6ULL开发板Platform设备驱动运行测试

    文章目录 1 编译驱动和设备程序 2 编译应用测试程序 3 运行测试 1 编译驱动和设备程序 和前面章节中驱动测试程序一样需要一个Makefile文件 只是将obj m的值改为led device o led driver o Makefi
  • vue项目初始化出现tar ENOENT: no such file or directory错误的解决办法。

    在npm install时 出现了tar ENOENT no such file or directory报错 原因 node的版本问题 解决办法 全局环境下更新node版本 或者使用公司内部包装过后的的 node 按照顺序运行下面的语句
  • 认识磁盘阵列柜性能

    一个 SCSI 硬盘的平均故障间隔时间 MTBF Mean Time Between Failure 都在数万 小时以上 在正常使用情况下 要坏掉一个硬盘已经很不容易了 在同一系统内 两个磁 盘驱动器同时坏掉的机率 更是微乎其微 但是 如果
  • Python中 ddt 数据驱动的小细节

    文章目录 前言 一 什么是DDT 二 安装ddt 三 基本原理和用法 总结 前言 记录ddt用法的一些小细节 一 什么是DDT DDT是 Data Driven Tests 的缩写 数据驱动测试 既然是测试 那么就要与单元测试框架一起使用