我正在编写测试,在其中创建构造函数。
这个构造函数有一个参数,我在里面传递了一个Mock。
但是除了这个参数之外,参数内部还有另一个函数,我不确定如何让构造函数将其视为Mock。
这是一个简单的示例:
Class MyClass():
def __init__(self, var):
self._var = var
self._func()
# Other stuff, I actually care about and can easily check **
现在,如果我在测试中将var
作为参数传递,则很容易处理:
def test_trying_mock(self):
var = MagicMock()
object = MyClass(var)
然后处理var行。如何使构造函数将func视为模拟,并使它跳过我实际想要运行并检查的部分?
答案 0 :(得分:0)
经过研究,我发现了如何做:
在测试类的set_up
下,我添加了self._mock_func()
。
在set_up
之外,我是这样实现此功能的:
def _mock_func(self):
class_path = ' [path to MyClass] '
self._func_mock = self.mock_object('_func', path= class_path)
然后,当构造函数运行时,它将为该函数提供模拟并继续运行。