测试面试题:pytest断言时,数据是符点类型,如何断言?

在使用 Pytest 进行断言时,如果数据是浮点类型,可以使用以下方法进行断言:

一、使用pytest.approx

pytest.approx可以用来比较两个浮点数是否近似相等。例如:

python 复制代码
import pytest

def test_float_assertion():
    result = 3.14159
    expected = 3.14
    assert result == pytest.approx(expected, rel=1e-2)

在这个例子中,pytest.approx(expected, rel=1e-2)表示允许结果与期望值之间有相对误差不超过1e-2(即 0.01)。

二、使用math.isclose结合pytest.raises进行断言

可以结合 Python 的内置函数math.isclose来判断两个浮点数是否接近,并使用pytest.raises来处理断言失败的情况。例如:

python 复制代码
import math
import pytest

def test_float_assertion_alternate():
    result = 3.14159
    expected = 3.14
    with pytest.raises(AssertionError):
        assert not math.isclose(result, expected, rel_tol=1e-2)

这里如果结果与期望不接近,就会触发AssertionError,被pytest.raises捕获。

在进行浮点类型数据的断言时,要根据具体的精度要求和测试场景选择合适的断言方法。

相关推荐
ThreeAu.2 天前
pytest 实战:用例管理、插件技巧、断言详解
python·单元测试·pytest·测试开发工程师
我的xiaodoujiao3 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 18--测试框架Pytest基础 2--插件和参数化
python·学习·测试工具·pytest
小小测试开发3 天前
pytest 库用法示例:Python 测试框架的高效实践
开发语言·python·pytest
know__ledge3 天前
Pytest+requests进行接口自动化测试8.0(Allure进阶 + 文件上传接口 + 单接口多用例)
pytest
川石课堂软件测试4 天前
CSS中常用的几种定位。
开发语言·css·python·网络协议·http·html·pytest
啊森要自信5 天前
【GUI自动化测试】Python 自动化测试框架 pytest 全面指南:基础语法、核心特性(参数化 / Fixture)及项目实操
开发语言·python·ui·单元测试·pytest
啊森要自信5 天前
【GUI自动化测试】YAML 配置文件应用:从语法解析到 Python 读写
android·python·缓存·pytest·pip·dash
我的xiaodoujiao5 天前
从 0 到 1 搭建完整 Python 语言 Web UI自动化测试学习系列 17--测试框架Pytest基础 1--介绍使用
python·学习·测试工具·pytest
程序员杰哥7 天前
Pytest与Unittest测试框架对比
自动化测试·软件测试·python·测试工具·测试用例·excel·pytest
软件测试小仙女7 天前
Pytest参数化实战:高效测试API接口
软件测试·测试开发·测试工具·pytest·接口测试·api·参数化