我正在编写一个测试,我在其中创建了一个构造函数。
这个构造函数有一个参数,我在里面传了一个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 视为模拟并让它跳到我真正想要运行和检查的部分?
最佳答案
经过一些研究,我发现了如何去做:
在测试类中,在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)
然后,当构造函数运行时,它会给这个函数一个mock并继续运行。
关于python - 构造函数中的 Magic Mock 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56826387/