我在找一种方法补丁程序.specialmultiple在下面, 在我想要修补的地方,比如在多个文件中使用同一个Mock对象实例的open方法。同样,当用作装饰器时,只有模拟对象传递给装饰函数
有没有办法用mock做到这一点
file1.py
---------
def hello():
open('test.data').read()
file2.py
--------
def world():
open('test2.data').read()
file3.py
--------
mopen = mock.MagicMock(create=True)
@patch.specialmultiple(['file1.open', 'file2.open'], new=mopen)
def test_case1(mopen):
open.side_effect = [OSError('not found'), OSError('Noy found')]
没有直接的方法去做你想做的事。最简单的方法是使用多行
patch
decorator和{a1}来模拟open
:您应该能够在
__builtin__
(python3.x上的builtins
)模块上修补open
。在当然,这将修补所有的。对于这种情况,没有一种方法可以白名单一组特定的模块。。。在
相关问题 更多 >
编程相关推荐