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

14、pytest像用参数一样使用fixture

官方实例

# content of test_fruit.py
import pytestclass Fruit:def __init__(self, name):self.name = nameself.cubed = Falsedef cube(self):self.cubed = Trueclass FruitSalad:def __init__(self, *fruit_bowl):self.fruit = fruit_bowlself._cube_fruit()def _cube_fruit(self):for fruit in self.fruit:fruit.cube()# Arrange
@pytest.fixture
def fruit_bowl():return [Fruit("apple"),Fruit("banana")]def test_fruit_salad(fruit_bowl):# Actfruit_salad = FruitSalad(*fruit_bowl)# Assertassert all(fruit.cubed for fruit in fruit_salad.fruit)

解读与实操

在基本级别上,测试函数通过将它们声明为参数来请求它们所需的fixture。

当pytest运行测试时,它会查看该测试函数中的参数,然后搜索与这些参数名称相同的fixture。一旦pytest找到它们,它就运行这些fixture,捕获它们返回的内容,并将这些对象作为参数传递给测试函数。

在这里插入图片描述

场景应用

fixture是pytest最强大的功能之一,随着深入接触,会发现fixture的便捷之处。

相关文章:

  • AIGC: 关于ChatGPT中的API调用模型
  • 基于YOLOv8深度学习的安全帽目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • Python查看文件列表
  • 如何战胜拖延?
  • Vue混淆与还原
  • C++11——initializer_list
  • Ubuntu Server 20.04.6下Anaconda3安装Pytorch
  • 【bug排查解决】现象级延迟8-10s
  • Swift 中 User Defaults 的读取和写入
  • docker搭建xxl-job
  • 配置typroa上传图片到gitee
  • Python作业答疑_6.22~6.25
  • debianubuntu的nvidia驱动升级
  • unity 2d 入门 飞翔小鸟 下坠功能且碰到地面要停止 刚体 胶囊碰撞器 (四)
  • APM Server监控
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • FastReport在线报表设计器工作原理
  • in typeof instanceof ===这些运算符有什么作用
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • leetcode46 Permutation 排列组合
  • Octave 入门
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Phpstorm怎样批量删除空行?
  • storm drpc实例
  • vue脚手架vue-cli
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 免费小说阅读小程序
  • 设计模式 开闭原则
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • puppet连载22:define用法
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 移动端高清、多屏适配方案
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • # linux从入门到精通(三)
  • #### golang中【堆】的使用及底层 ####
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #考研#计算机文化知识1(局域网及网络互联)
  • (11)iptables-仅开放指定ip访问指定端口
  • (SERIES10)DM逻辑备份还原
  • (多级缓存)多级缓存
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (面试必看!)锁策略
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)基于IDEA的JAVA基础12
  • (转)用.Net的File控件上传文件的解决方案
  • *p++,*(p++),*++p,(*p)++区别?
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • ..回顾17,展望18
  • .cn根服务器被攻击之后
  • .Net Memory Profiler的使用举例
  • .NET 分布式技术比较