必要なものをエミュレートすることが分かっ最も近かった、以下の私の答えを見つけてください。このうちのほとんどは http://omiron.ro/post/python/how_to_mock_open_file/です。 私はPython 3.6とPy.testをEclipseのpydevプラグインで使用しました。
import unittest.mock as mock
from unittest.mock import mock_open
#main function
def myfunction(filename):
f=open(filename)
maximum = 0
for line in f:
if maximum < len(line):
maximum = len(line)
pass
f.close()
return maximum
#test function for the main function
@mock.patch('builtins.open', new_callable=mock_open, create=True)
def test_myfunction(mock_open):
mock_open.return_value.__enter__ = mock_open
mock_open.return_value.__iter__ = mock.Mock(
return_value = iter(['12characters', '13_characters']))
answer = myfunction('foo')
assert not answer == 12
assert answer == 13