相关疑难解决方法(0)

在Python中使用/ import语句进行模拟修补

我试图让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修补呼叫?

谢谢

python python-mock

24
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×1

python-mock ×1