python - 构造函数中的 Magic Mock 函数

标签 python testing mocking

我正在编写一个测试,我在其中创建了一个构造函数。
这个构造函数有一个参数,我在里面传了一个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/

相关文章:

python - 脚本在 IDLE 中工作,但 .py 文件不工作

Python:typing.cast 与内置类型转换

android - 在一台机器上测试多个 Android 设备

ruby - 单元测试应该复制功能还是测试输出?

php - symfony的测试和浏览器有什么区别

typescript - 开 Jest mock TypeScript 类 "No overload expects 1 type arguments"

python - 限制外键 Django 的模型选择

Python频谱分析

unit-testing - NSubstitute VerifyAll 等效

python - 在 TestCase.setUp() 中模拟