网站制作具体步骤/网站建设运营

网站制作具体步骤,网站建设运营,开发手机应用网站,公司网站建设包含的内容一、前言 用例三要素之一就是对预期结果的断言。 何为断言?简单来说就是实际结果和期望结果去对比,符合预期就测试pass,不符合预期那就测试 failed。断言内容就是你要的预期结果。断言包含对接口响应内容做断言、也包含对落DB的数据做断言。…

一、前言

用例三要素之一就是对预期结果的断言。

何为断言?简单来说就是实际结果和期望结果去对比,符合预期就测试pass,不符合预期那就测试 failed。断言内容就是你要的预期结果。断言包含对接口响应内容做断言、也包含对落DB的数据做断言。

pytest可以让开发者使用Python断言来验证测试中的期望值。

话不多说,我们来举个小例子熟悉一下,一般我们会在抛出异常之后输出一些提示信息,执行之后就方便查看是什么原因了。

# 异常信息
def f():return 3
def test_function():a = f()assert a % 2 == 0, "判断 a 为偶数,当前 a 的值为:%s" % a

执行结果

二、常用断言

pytest 里面断言实际上就是 python 里面的 assert 断言方法,常用的有以下几种

  • assert xx :判断 xx 为真
  • assert not xx :判断 xx 不为真
  • assert a in b :判断 b 包含 a
  • assert a == b :判断 a 等于 b
  • assert a != b :判断 a 不等于 b

三、异常断言

可以使用 pytest.raises 作为上下文管理器,当抛出异常时可以获取到对应的异常实例

# 断言异常
def test_zero_division():with pytest.raises(ZeroDivisionError):1 / 0

断言场景:断言它抛的异常是不是预期想要的

代码执行:1/0

预期结果:抛的异常是ZeroDivisionError: division by zero

如何断言:通常是断言异常的 type 和 value 值了

具体方式:这里 1/0 的异常类型是 ZeroDivisionError,异常的 value 值是 divisionby zero

#详细断言异常
def test_zero_division_long():with pytest.raises(ZeroDivisionError) as excinfo:1 / 0# 断言异常类型 typeassert excinfo.type == ZeroDivisionError# 断言异常 value 值assert "division by zero" in str(excinfo.value)

excinfo :是一个异常信息实例

主要属性: .type 、  .value 、 .traceback 

注意:断言 type 的时候,异常类型是不需要加引号的,断言 value值的时候需转 str

拓展一:match

可以将 match 关键字参数传递给上下文管理器,以测试正则表达式与异常的字符串表示形式是否匹配

注意:这种方法只能断言value,不能断言type

# 自定义消息
def test_zero_division_long():with pytest.raises(ZeroDivisionError, match=".*zero.*") as excinfo:1 / 0

该 match 方法的regexp参数与 re.search  函数匹配,因此在上面的示例中 match='zero' 也可以使用

拓展二:检查断言装饰器

# 断言装饰器
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_f():1 / 0

执行结果

知识点

  • 代码抛出异常,但是和raises指定的异常类相匹配,所以不会断言失败
  • 它相当于一个检查异常装饰器,功能:检查是否有异常,不确定是否有异常
  • with pytest.raise(ZeroDivisionError)  对于故意测试异常代码的情况,使用可能会更好
  • 而@pytest.mark.xfail(raises=ZeroDivisionError) 对于检查未修复的错误(即,可能会发生异常),使用检查断言可能会更好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/897671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Spring Boot的牙科诊所管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

upload-labs-靶场(1-19关)通关攻略

文件上传漏洞是指由于程序员再开发时,未对用户上传的文件进行严格的验证和过滤,而导致用户可以上传可执行的动态脚本文件 Pass-01(前端验证绕过) 上传111.php文件,发现弹窗显示不允许,并给出白名单文件类…

使用 pytesseract 进行 OCR 识别:以固定区域经纬度提取为例

引言 在智能交通、地图定位等应用场景中,经常会遇到需要从图像中提取经纬度信息的需求。本篇文章将介绍如何利用 Python 的 pytesseract 库结合 PIL 对图像进行预处理,通过固定区域裁剪,来有效地识别出图像上显示的经纬度信息。 1. OCR 与 …

机器人交互系统 部署构建

环境要求 Ubuntu 20.04 或更高版本ROS Noetic 或兼容版本Python 3.8 安装步骤 1. 安装ROS环境(如未安装) sudo apt update sudo apt install ros-noetic-desktop-full source /opt/ros/noetic/setup.bash2. 创建工作空间并克隆代码 mkdir -p ~/code…

全员DeepSeek时代,前端能做些什么?

全员DeepSeek时代,前端能做些什么? 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc #mermaid-svg-VNyL95jkz9jEXgUq {font-family:&…

Machine Learning: 十大基本机器学习算法

机器学习算法分类:监督学习、无监督学习、强化学习 基本的机器学习算法: 线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林、朴素贝叶斯、降维、梯度增强。 机器学习算法大致可以分为三类: 监督学习算法 (Sup…

【Linux docker 容器】关于想要让虚拟机在开机时候也docker自己启动,容器也自己启动,省去要自己开docker和容器

确认 Docker 服务状态: 首先,你需要确保 Docker 服务已经在虚拟机上安装并正确配置。你可以使用如下命令来检查 Docker 服务的状态: systemctl status docker.service 如果服务没有运行,你可以使用以下命令启动它: s…

linux 命令 ls

ls 是 Linux 系统中用于列出目录内容的核心命令,几乎所有日常操作都会用到。以下是其详细用法和常见场景说明 1. 基础语法 ls [选项] [目录/文件] 不指定目录时,默认列出当前目录的内容。 可以指定文件或目录路径,支持通配符(如…

CI/CD—GitLab部署

GitLab简介: GitLab 是一个用于代码托管和软件开发协作的平台,在全球开发者社区及企业中应用广泛,以下是对它的详细介绍: 主要功能 代码托管:提供了基于 Git 的代码仓库管理功能,支持创建、克隆、推送、…

ubuntu软件

视频软件,大部分的编码都能适应 sudo apt install vlc图片软件 sudo apt install gwenview截图软件 sudo apt install flameshot设置快捷键 flameshot flameshot gui -p /home/cyun/Pictures/flameshot也就是把它保存到一个自定义的路径 菜单更换 sudo apt r…

Easysearch 使用 AWS S3 进行快照备份与还原:完整指南及常见错误排查

Easysearch 可以使用 AWS S3 作为远程存储库,进行索引的快照(Snapshot)备份和恢复。同时,Easysearch 内置了 S3 插件,无需额外安装。以下是完整的配置和操作步骤。 1. 在 AWS S3 上创建存储桶 登录 AWS 控制台&#x…

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件的全面测评

随着边缘计算和人工智能技术的迅速发展,性能强大的嵌入式AI开发板成为开发者和企业关注的焦点。NVIDIA近期推出的Jetson Orin Nano 8GB开发套件,凭借其40 TOPS算力、高效的Ampere架构GPU以及出色的边缘AI能力,引起了广泛关注。本文将从配置性…

开源免费日志服务ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式 通常,ELK Stack 使用 Logstash 或者 Filebeat 来采集 syslog 日志。 Beats 通常更轻量级,适合作为代理部署在各个日志源服务器上,而 Logstash 则功能更强大,可以进行更复杂的日志处理和…

C#+AForge 实现视频录制

C#AForge 实现视频录制 ​ 在C#中,使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架,提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 ​ 首先,确保你的项目中已经安装了 AForge.Video和AFo…

PHP框架加载不上.env文件中的变量

以lumen5.5框架为例,根目录中bootstrap文件夹下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是读取所有.env中的文件的,这个是正常的,但是在代码中的任何位置或者在config目录下的databases.php里,代码如…

21.Linux 线程库的使用与封装

在linux内核中并没有线程的概念,只有轻量级进程LWP的概念,linux下的线程都是是由LWP进行模拟实现的。因此linux操作系统中不会提供线程的相关接口,只会提供轻量级线程的接口(如vfork,clone等)。但是在我们的…

Aliyun CTF 2025 web 复现

文章目录 ezoj打卡OKoffens1veFakejump server ezoj 进来一看是算法题,先做了试试看,gpt写了一个高效代码通过了 通过后没看见啥,根据页面底部提示去/source看到源代码,没啥思路,直接看wp吧,跟算法题没啥关系,关键是去…

Git使用(一)--如何在 Windows 上安装 Git:详细步骤指南

如果你想在 Windows 机器上安装 Git,可以按照以下详细指南进行操作。 第一步:下载 Git 可通过官网下载 适用于 Windows 的 Git 最新版本。 如果下载速度较慢,可以通过下面提供的百度网盘 链接下载安装包, https://git-scm.com/d…

本地Git仓库搭建(DevStar)与Git基本命令

本地Git仓库搭建(DevStar)与Git基本命令 实验环境搭建平台Git基本命令的使用本地仓库的创建代码提交代码合并版本发布 总结 实验环境 搭建平台 按照DevStar的Github仓库要求,在终端中执行下列命令,即可成功安装DevStar到本地部署…

stm32 蓝桥杯 物联网 独立键盘的使用

在蓝桥杯物联网平台里面,有5个外接设备,其中有一个就是6个独立按键。首先,我们先看一下按键有关的电路图。 电路图与cubemx设定 由图可见,独立键盘组由两行三列构成,我们通过行列来锁定要访问的独立按键在哪。ROW1挂…