pytest 异常断言的使用方法
时间: 2023-09-08 22:07:34 浏览: 91
Python TestCase中的断言方法介绍
pytest 异常断言可以用于测试代码中是否抛出了特定的异常。使用 pytest.raises() 上下文管理器,可以捕获代码中抛出的异常并进行断言。
以下是使用 pytest.raises() 进行异常断言的示例代码:
```python
import pytest
def test_zero_division():
with pytest.raises(ZeroDivisionError):
1 / 0
```
在这个例子中,我们测试了 1/0 是否会抛出 ZeroDivisionError 异常。使用 pytest.raises() 上下文管理器来捕获异常,并且在上下文中进行断言,断言异常类型是 ZeroDivisionError。
如果测试中没有抛出指定的异常,那么 pytest.raises() 会抛出一个 AssertionError。如果测试中抛出了异常,但不是指定的异常类型,同样会抛出 AssertionError。
除了指定异常类型以外,还可以使用 as 关键字来断言异常消息。例如:
```python
def test_exception_message():
with pytest.raises(ValueError, match=r".*must be greater than zero.*"):
raise ValueError("Value must be greater than zero")
```
在这个例子中,我们测试了抛出 ValueError 异常时,异常消息是否匹配指定的正则表达式。使用 match 关键字来指定正则表达式,断言异常消息是否符合预期。
总之,pytest.raises() 可以帮助我们轻松地测试代码中是否抛出了特定的异常,以及异常消息是否符合预期。
阅读全文