pytest(1).raises用法
含义
raises: 在断言一些代码块或者函数时会引发意料之中的异常或者其他失败的异常,导致程序无法运行时,使用 raises 捕获匹配到的异常,可以继续让代码正常运行。
使用
- 预期内异常
- import pytest
-
def test_A(self):
with pytest.raises(ZeroDivisionError):
2/0
assert eval("1+2")==3 - 如果我们不知道预期异常的是什么,我们可以使用 match 和 raise 进行自定义异常
-
def exc(self,x):
if x == 0:
raise ValueError("value not 0 or None")
return 2 / x
def test_raise(self):
with pytest.raises(ValueError, match="value not 0 or None"):
Test_demo().exc(0)
# assert eval("1 + 2") == 2 //注意这个assert和下面的assert的位置,assert在这。这行断言不会执行。因为官方提示, raise 的异常应该是当前代码块最后一行,如果在其后面还有代码,那么将不会被执行
assert eval("1 + 2") == 2//只有这样修改,才会执行