Mih*_*hai 4 python testing pytest
作为异常测试处理的新手,我想知道如何检查是否提出了断言。
一个.py
class SomeError(Exception):
pass
class SomeClass(object):
def __init__(self):
...
raise SomeError
...
Run Code Online (Sandbox Code Playgroud)
test_a.py
from a.a import SomeClass
def test_some_exception_raised():
?
Run Code Online (Sandbox Code Playgroud)
应该有什么断言来检查是否SomeError被提出?我正在使用 pytest。
为了编写关于引发异常的断言,您可以pytest.raises像这样使用上下文管理器:
一个.py
class SomeError(Exception):
pass
class SomeClass(object):
def __init__(self):
...
raise SomeError("some error message")
...
Run Code Online (Sandbox Code Playgroud)
test_a.py
from .a import SomeClass, SomeError
import pytest
def test_some_exception_raised():
with pytest.raises(SomeError) as excinfo:
obj = SomeClass()
assert 'some error message' in str(excinfo.value)
Run Code Online (Sandbox Code Playgroud)
有关异常断言的更多信息,请参见此处