如何在单元测试中为测试异常生成错误?
How can to generate error for testing exception in unit test?
我有相同的代码:
def foo(self):
x = self.a + self.b
try:
res = self.a / self.b
except ZeroDivisionError:
res = foo_2()
except AttributeError:
res = foo_3()
except CustomError:
res = foo_4()
except RemoteAPIError:
res = foo_5()
return res
def foo_2():
...
def foo_3():
...
def foo_4():
...
def foo_5():
...
如何在unittest
或mock
中提高ZeroDivisionError
、AttributeError
等?
如果 object
是您的 class 的一个实例,使得 object.b = 0 那么您可以这样做
import pytest
from unittest.mock import MagicMock
object.foo_2 = MagicMock()
with pytest.raises(ZeroDivisionError):
object.foo()
object.foo_2.assert_called_once()
同样,您可以创建生成其他两个错误的 class 实例
我有相同的代码:
def foo(self):
x = self.a + self.b
try:
res = self.a / self.b
except ZeroDivisionError:
res = foo_2()
except AttributeError:
res = foo_3()
except CustomError:
res = foo_4()
except RemoteAPIError:
res = foo_5()
return res
def foo_2():
...
def foo_3():
...
def foo_4():
...
def foo_5():
...
如何在unittest
或mock
中提高ZeroDivisionError
、AttributeError
等?
如果 object
是您的 class 的一个实例,使得 object.b = 0 那么您可以这样做
import pytest
from unittest.mock import MagicMock
object.foo_2 = MagicMock()
with pytest.raises(ZeroDivisionError):
object.foo()
object.foo_2.assert_called_once()
同样,您可以创建生成其他两个错误的 class 实例