我无法按照文档中的建议使用mock_open修补模块的open方法。
import my_module
import mock
def test_foo():
m = mock.mock_open()
with patch('my_module.open', m, create=True):
my_module.io_func()
>>> test_foo()
IOError: [Errno 2] No such file or directory: 'foofile'
知道补丁为什么不起作用?
或者,以下按预期执行:
import my_module
import mock
def test_foo():
m = mock.mock_open()
my_module.__builtins__['open'] = m
my_module.io_func()
然而,这感觉就像是黑客。