测试面试题: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捕获。

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

相关推荐
high_tea5 小时前
pytest - 多线程提速
python·pytest
傻啦嘿哟2 天前
自动化测试框架集成:将Selenium集成到pytest与unittest中
selenium·测试工具·pytest
一名在八月份找工作的测试员3 天前
自动化学习1:pytest自动化框架的基本用法:注意事项/断言assert/测试结果分析
学习·自动化·pytest
什么时候才能变强4 天前
Pytest-如何将allure报告发布至公司内网
linux·服务器·pytest
一名在八月份找工作的测试员4 天前
自动化学习2:pytest的高级用法(mark标记/fixture/hook)
学习·自动化·pytest
测试19985 天前
Python+requests+pytest+allure自动化测试框架
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
楠神说软件测试5 天前
简单接口自动化框架实现(Python+requests+pytest)
运维·自动化·pytest
神即道 道法自然 如来7 天前
Python+Pytest框架,“api_key.py文件怎么编写“?
python·pytest
神即道 道法自然 如来8 天前
Pytest配置文件pytest.ini如何编写生成日志文件?
pytest