How to assert expected exceptions in pytest

To assert expected exceptions in pytest, you can use the pytest.raises context manager. Here’s an example:

import pytest

def divide(a, b):
    if b == 0:
        raise ZeroDivisionError("Cannot divide by zero")
    return a / b

def test_divide_by_zero():
    with pytest.raises(ZeroDivisionError) as exc_info:
        divide(10, 0)
    assert str(exc_info.value) == "Cannot divide by zero"

In this example, we have a function divide that performs division. If the divisor b is zero, it raises a ZeroDivisionError with a custom error message.

In the test_divide_by_zero test function, we use the pytest.raises context manager to assert that a specific exception is raised. Inside the context manager, we call the divide function with arguments that would result in a division by zero. If the expected exception is raised, the context manager captures the exception information. We can then access the exception using exc_info.value and assert its properties, such as the error message.

Note that the pytest.raises context manager will pass the test if the expected exception is raised. If the exception is not raised or a different exception is raised, the test will fail.

Make sure to replace ZeroDivisionError with the actual exception you expect to be raised, and adjust the assertion as needed for your specific case.

See https://docs.pytest.org/en/7.1.x/how-to/assert.html#assertions-about-expected-exceptions for more details.

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 12:28:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 12:28:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 12:28:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 12:28:02       20 阅读

热门阅读

  1. 建立人才信息化管理体系,提高企业核心竞争力

    2023-12-29 12:28:02       37 阅读
  2. Android studio socket客户端应用设计

    2023-12-29 12:28:02       35 阅读
  3. 关于edge浏览器以及插件推荐

    2023-12-29 12:28:02       39 阅读
  4. mac 安装pyaudio

    2023-12-29 12:28:02       38 阅读
  5. Css基础内容

    2023-12-29 12:28:02       30 阅读
  6. Flutter 利用路由监听页面的展示与否

    2023-12-29 12:28:02       38 阅读
  7. blob文件流前端显示pdf

    2023-12-29 12:28:02       23 阅读