gpt4 book ai didi

python-3.x - python : mock file input for testing function

转载 作者:行者123 更新时间:2023-12-03 09:39:27 24 4
gpt4 key购买 nike

我知道有类似的帖子,但我没有找到类似的帖子。

我在 python 中有一个函数,它接收要读取的文件名作为输入,处理并返回一些东西,我想测试我的函数的输出。例子:

#main function
def myfunction(filename):
f=open(filename)

for line in f:
# process data
pass
f.close()

return # something

#test function for the main function
def test_myfunction():
mockfile = #mymockfile
assert myfunction(mockfile) == #something

我怎样才能创建一个模拟文件来测试这个函数而不必编写一个读取文件?

这是我发现最接近我需要的东西 ( http://www.voidspace.org.uk/python/mock/helpers.html#mock-open)

最佳答案

遇到了同样的问题,请在下面找到我的答案。其中大部分来自:
http://omiron.ro/post/python/how_to_mock_open_file/ .
我通过 Eclipse 中的 pydev 插件使用了 Python 3.6 和 Py.test。

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

关于python-3.x - python : mock file input for testing function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com