我試圖讓mock.patch對下面的一段示例代碼import語句:從模擬補丁/ Python中
from mock import patch
from collections import defaultdict
with patch('collections.defaultdict'):
d = defaultdict()
print 'd:', d
此輸出以下:
d: defaultdict(None, {})
這意味着該defaultdict未修補。
如果我採用了直板import語句它的工作原理更換從/ import語句:
from mock import patch
import collections
with patch('collections.defaultdict'):
d = collections.defaultdict()
print 'd:', d
輸出是:
d: <MagicMock name='defaultdict()' id='139953944084176'>
有什麼辦法來修補從/導入使用電話嗎?
謝謝
這是否意味着你的單元測試會悄悄地開始,如果你改變你是否使用了實現的細節表現非常,非常不同的'從X進口Y'或'進口X.Y'? – detly 2013-12-22 13:34:05
@detly:我相信這是事實,儘管我對模擬不是很熟悉,所以我不能從經驗中說出。 – BrenBarn 2013-12-22 17:50:32
@ detly是的,這是正確的 – Daenyth 2016-04-08 18:19:23