0

想象一个像这样的类:

class Foo():

    def method_1(self):
        bar = Bar()
        bazz = Bazz(bar)
        return bazz.method_2()

对于单元测试,当我们从不调用任何方法时,我们如何模拟Bar对象,我们只是将它作为参数传递给Bazz构造函数?(是的,这并不理想,但是这种模式可以在通过依赖注入将不同对象连接在一起的顶级类中找到)。

4

1 回答 1

0

当您执行时,您确实调用了该Bar对象:bar = Bar(),因此您可以轻松地模拟它:

mock_bar = mocker.MagicMock(name='Bar')
mocker.patch('foo.Bar', new=mock_bar)
# mock_foo.return_value = the new mocked object
于 2021-09-09T10:18:22.520 回答