模拟示例list this example:
>>> manager = MagicMock()
>>> with patch('mymodule.Class1') as MockClass1:
... with patch('mymodule.Class2') as MockClass2:
... manager.attach_mock(MockClass1, 'MockClass1')
... manager.attach_mock(MockClass2, 'MockClass2')
... MockClass1().foo()
... MockClass2().bar()
...
<MagicMock name='mock.MockClass1().foo()' id='...'>
<MagicMock name='mock.MockClass2().bar()' id='...'>
>>> manager.mock_calls
[call.MockClass1(),
call.MockClass1().foo(),
call.MockClass2(),
call.MockClass2().bar()]
我想完成同样的事情,但是在补丁程序上使用explicit ^{patcher.start()
似乎返回了一些与上下文化的mock不同的东西,至少在将它们附加到父级mock的能力方面是这样的:
我是不是遗漏了什么,或者这是一个bug,怎样才能模拟出几个这样的调用并验证它们都是按预期顺序进行的呢?在
因为
autospec=True
和一个函数被模拟出来,patch
也将返回一个函数。为了访问模拟对象,您可以访问patch(…).start().mock
。在相关问题 更多 >
编程相关推荐