iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >pytest官方文档解读fixtures
  • 929
分享到

pytest官方文档解读fixtures

2024-04-02 19:04:59 929人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、测试的构成二、回到fixtures本身在深入了解fixture之前,让我们先看看什么是测试。 一、测试的构成 其实说白了,测试就是在特定的环境、特定的场景下、执行特定的行为,

在深入了解fixture之前,让我们先看看什么是测试。

一、测试的构成

其实说白了,测试就是在特定的环境、特定的场景下、执行特定的行为,然后确认结果与期望的是否一致。

就拿最常见的登录来说,完成一次正常的登录场景,需要可用的测试环境,可以正常登录的账号和密码。然后,用这个账号密码进行登录操作,结果登录成功,符合这次正常登录场景的预期结果,测试完成。

这样看来,通常就可以把测试分为4个步骤:

  • Arrange
  • Act
  • Assert
  • Cleanup

Arrange,可以理解为 除了执行测试之外的任何事情。比如上面例子中,我得有个可用的测试环境跟可用的账号密码,这些都要事先准备好。此外,还有可能是:启动/终止服务、将记录输入数据库、定义要查询的URL、为还不存在的用户生成一些凭据等等。

总之,就是为了能够进行测试要准备好的事情。

Act,相比准备前置环境,Act做的事情就相对单一些,其实就是开始测试动作。比如,接口测试里,调用被测试的api接口。

Assert,Assert是我们查看结果的地方,看看是否像我们预期的那样。比如接口请求成功后,数据的接口会返回“success”,assert status == "success"。

Cleanup,在测试结束后,做清理工作,为了其他的测试不会意外的受到本次测试的影响。比如,测试之前我插入了一条测试数据,测试完后,我把它删掉。

总得来说,测试就是Act+Assert,而其他要安排的事情,放在Arrange里。

二、回到fixtures本身

而在pytest中,fixtures就是来做Arrange的事情。当然了,fixture也不局限于此,如果测试足够复杂的话,不妨也可以在里面进行act的事情。

把一个普通的函数变成fixtures非常简单,只要加上@pytest.fixture这个装饰就成:

import pytest
class Fruit:
    def __init__(self, name):
        self.name = name
    def __eq__(self, other):
        return self.name == other.name
@pytest.fixture
def my_fruit():
    # 这里是一个fixture,返回了一个Fruit对象,名字叫苹果
    return Fruit("苹果")
@pytest.fixture
def fruit_basket(my_fruit):
    # 这里是另一个fixture,同样声明一个Fruit对象,名字叫香蕉。
    # 然后在这个fixture中又传入了上一个fixture:my_fruit
    # 最后把最终的返回装到一个列表[]里,返回
    return [Fruit("香蕉"), my_fruit]
def test_my_fruit_in_basket(my_fruit, fruit_basket):
    # 这是一个测试函数,可以使用多个fixture
    assert my_fruit in fruit_basket

上面的代码体现了fixtures的2个重要特性:

  • 测试函数可以使用多个fixture
  • fixture本身还可以使用其他的fixture

接下来,我将继续跟着官方文档解读fixture的特点。

以上就是pytest官方文档解读fixtures的详细内容,更多关于pytest解读fixtures的资料请关注编程网其它相关文章!

--结束END--

本文标题: pytest官方文档解读fixtures

本文链接: https://www.lsjlt.com/news/118504.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pytest官方文档解读fixtures
    目录一、测试的构成二、回到fixtures本身在深入了解fixture之前,让我们先看看什么是测试。 一、测试的构成 其实说白了,测试就是在特定的环境、特定的场景下、执行特定的行为,...
    99+
    2024-04-02
  • pytest官方文档解读fixtures的autouse
    现在我们已经知道了,fixtures是一个非常强大的功能。 那么有的时候,我们可能会写一个fixture,而这个fixture所有的测试函数都会用到它。 那这个时候,就可以用auto...
    99+
    2024-04-02
  • pytest官方文档解读fixtures的调用方式
    目录pytest官方文档fixtures调用一、测试函数声明传参请求fixture二、fixture中的返回值传递给测试函数pytest官方文档fixtures调用 既然fixtur...
    99+
    2024-04-02
  • pytest官方文档解读fixtures调用fixtures及fixture复用性
    目录fixtures调用其他fixtures及fixture复用性 一、Fixtures调用别的Fixtures二、Fixtures的复用性fixtures调用其他fixt...
    99+
    2024-04-02
  • pytest官方文档解读Fixture errors抛错解决
    既然fixtures函数也是咱们自己写的,那难免会发生异常,当fixture函数异常后,pytest中如何处理呢? 首先,在pytest中,如果一个测试函数中传入了多个fixture...
    99+
    2024-04-02
  • pytest官方文档解读之安装和使用插件的方法
    目录一、pip 安装二、查找可用插件三、在测试模块或者conftest文件中加载指定插件四、查看被激活的插件五、注销插件本节讨论安装和使用第三方插件。关于编写自己的插件,我们下一章继...
    99+
    2024-04-02
  • Python 官方文档解读(1):66
    Python 解释器 (CPython 3.7)内置有 66 个函数,这些函数在任何时刻都是可用的。此文是为了对这 66 个函数进行简单的梳理,便于以后可能用到它们时能想到。 1. abs(x) 返回一个数的绝对值。参数x可以是int、f...
    99+
    2023-01-30
    文档 官方 Python
  • Python 官方文档解读(2):thr
    使用 Python 可以编写多线程程序,注意,这并不是说程序能在多个 CPU 核上跑。如果你想这么做,可以看看关于 Python 并行计算的,比如官方 Wiki。 Python 线程的主要应用场景是一些包含等待或 I/O 的任务,比如与远...
    99+
    2023-01-30
    文档 官方 Python
  • pytest解读fixtures之Teardown处理yield和addfinalizer方案
    目录前言一、yield fixtures(推荐)1, yield 和 return2, yield的执行顺序二、addfinalizer1.request.addfinalizer把...
    99+
    2024-04-02
  • pytest解读fixtures中yield与addfinalizer区别
    目录前言一、问题回顾二、问题解决前言 在上一章中,文末留下了一个坑待填补,疑问是这样的: 目前从官方文档中看到的是 We have to be careful though, bec...
    99+
    2024-04-02
  • pytest解读fixture有效性及跨文件共享fixtures
    目录fixture有效性及跨文件共享fixtures一、fixture有效性二、跨文件共享fixturesfixture有效性及跨文件共享fixtures 一、fixture有效性 ...
    99+
    2024-04-02
  • ZooKeeper官方文档之Java案例解读
    目录需求理解举例类比Executor和DataMonitor内部类和接口Executor:DataMonitor:继承关系Executor:DataMonitor:引用关系Execu...
    99+
    2024-04-02
  • pytest解读fixtures中yield与addfinalizer区别是什么
    本文小编为大家详细介绍“pytest解读fixtures中yield与addfinalizer区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“pytest解读fixtures中yield与addfinalizer区别是什么”文章能...
    99+
    2023-06-30
  • 怎么用pytest解读fixture有效性及跨文件共享fixtures
    这篇文章主要介绍“怎么用pytest解读fixture有效性及跨文件共享fixtures”,在日常操作中,相信很多人在怎么用pytest解读fixture有效性及跨文件共享fixtures问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-30
  • pytest解读fixtures之Teardown怎么处理yield和addfinalizer
    本文小编为大家详细介绍“pytest解读fixtures之Teardown怎么处理yield和addfinalizer”,内容详细,步骤清晰,细节处理妥当,希望这篇“pytest解读fixtures之Teardown怎么处理yield和ad...
    99+
    2023-06-30
  • pytest fixtures函数及测试函数的参数化解读
    目录pytest fixtures测试函数参数化一、@pytest.mark.parametrize:参数化测试函数1. 常规用法2. 在参数化中标记单个测试实例3. 多个参数化组合...
    99+
    2024-04-02
  • pytest解读一次请求多个fixtures及多次请求
    目录一、一个测试函数/fixture一次请求多个fixture二、每个测试函数可以多次请求fixtures(返回值被缓存)跟着节奏继续来探索fixtures的灵活性。 一、一个测试函...
    99+
    2024-04-02
  • Python3.2.3官方文档(中文版)
    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/66/ 来源:python黑洞网,专注python资源,pytho...
    99+
    2023-01-31
    中文版 文档 官方
  • 【Python】官方文档中文版
    Python官方文档中文版应该是正在翻译中,现在官网貌似找不到入口,但是可以通过访问进入。 在文档url后面加上zh-cn即可。https://docs.python.org/zh-cn/,里面还有很多内容是英文的。     直接找找不到...
    99+
    2023-01-31
    中文版 文档 官方
  • Oracle 12C 官方文档地图
    ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作