【发布时间】:2016-10-05 08:13:27
【问题描述】:
我正在测试一个需要模拟对象的函数。此对象可能会引发 IntegrityError,因此我将此错误作为副作用添加到模拟对象
def test_(self, mock_object):
mock_object.side_effect = IntegrityError
这在某种程度上是不正确的,因为它引发了一个异常说__init__() takes at least 4 arguments (1 given)
这样做的正确方法是什么?
【问题讨论】:
-
一如既往,包括完整的回溯,而不仅仅是错误。在这种情况下,很明显
IntegrityError.__init__失败了,因为模拟对象试图错误地构造它。 -
在这种情况下,错误消息已经说明了这一点。手头的问题是如何正确构造错误。
标签: python unit-testing python-mock