我试图让mock.patch处理以下示例代码:
from mock import patch
from collections import defaultdict
with patch('collections.defaultdict'):
d = defaultdict()
print 'd:', d
Run Code Online (Sandbox Code Playgroud)
这输出如下:
d: defaultdict(None, {})
Run Code Online (Sandbox Code Playgroud)
这意味着defaultdict没有修补.
如果我用直接导入语句替换from/import语句,它可以工作:
from mock import patch
import collections
with patch('collections.defaultdict'):
d = collections.defaultdict()
print 'd:', d
Run Code Online (Sandbox Code Playgroud)
输出是:
d: <MagicMock name='defaultdict()' id='139953944084176'>
Run Code Online (Sandbox Code Playgroud)
有没有办法使用from/import修补呼叫?
谢谢