有一个用于模拟字典的patch.dict
函数。是否可以使用模拟1.0.1库模拟列表?我不打算调用被模拟的对象,所以side_effect
对我不起作用。
答案 0 :(得分:1)
对于像dicts这样的列表没有特殊的方法,但是你可以使用通用的patch方法:
from mock import patch
foo = ['original', 'stuff']
with patch('__main__.foo', new=['mocked', 'items']):
assert foo == ['mocked', 'items']
assert foo == ['original', 'stuff']
请注意,patch
的第一个参数是一个字符串,其中包含要修补的项目的完整Python路径。如果您的列表是模块范围,则可以使用'package.module.<list name>'
。