使用模拟库1.0.1模拟列表

时间:2014-07-31 14:16:21

标签: python mocking pytest

有一个用于模拟字典的patch.dict函数。是否可以使用模拟1.0.1库模拟列表?我不打算调用被模拟的对象,所以side_effect对我不起作用。

1 个答案:

答案 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>'