Pytest 异常处理
简介
异常处理是指在测试过程中捕获和处理代码中抛出的异常。异常处理是一种重要的测试技术,可以用来验证代码在预期抛出异常的情况下是否正确进行处理。
在 Pytest 中,可以使用 pytest.raises
上下文管理器来捕获代码执行过程中抛出的特定异常,并允许对该异常进行断言。
常用的异常处理方法
try...except
pytest.raises()
try ...except 的使用
代码示例:
try:
可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
处理异常的代码块2
except [Exception]:
处理其它异常
try :
a = int(input("输入被除数"))
b = int(input("输入除数"))
c = a / b
print("您输入的两个数相除的结果是:", c)
except (ValueError, ArithmeticError):
print("程序发生了数字格式异常、算数异常之一")
except :
print("未知异常")
print("程序继续运行")
运行结果:
pytest.raises() 的使用
- 可以捕获特定的异常。
- 获取捕获的异常的细节(异常类型,异常信息)。
- 发生异常,后面的代码将不会被执行。
pytest.raises() 用法详细讲解可参考 Pytest 的官网
代码示例:
import pytest
def test_raise():
with pytest.raises(ValueError, match='must be 0 or None'):
raise ValueError("value must be 0 or None")
def test_raise1():
with pytest.raises(ValueError) as exc_info:
raise ValueError("value must be 42")
assert exc_info.type is ValueError
assert exc_info.value.args[0] == "value must be 42"
运行结果:
总结
- Pytest 异常处理的方法。