gpt4 book ai didi

python - 如何在 python 单元测试中模拟特定文件的存在?

转载 作者:行者123 更新时间:2023-11-28 19:11:02 24 4
gpt4 key购买 nike

我正在用 python 为嵌入式软件代码编写单元测试。

其中一个文件需要一个特定 文件才能存在。 (例如“/dir_name/file_name.txt”)否则会引发错误。

通常,这个文件存在于硬件设备上,我的 python 代码读取这个文件。编写python代码单元测试时,如何模拟文件的存在?

tempfile.mkstemp() 似乎没有生成我想要的确切路径/文件名,即/dir_name/file_name.txt。它总是添加一些随机字母。

这是Python3.4。是否可以使用 unittest.mock 完成此操作?

最佳答案

您可以创建一个上下文管理器来创建和删除文件。

from contextlib import contextmanager

@contextmanager
def mock_file(filepath, content=''):
with open(filepath, 'w') as f:
f.write(content)
yield filepath
try:
os.remove(filepath)
except Exception:
pass


def test_function():
with mock_file(r'/dirname/filename.txt'):
function()

关于python - 如何在 python 单元测试中模拟特定文件的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40187287/

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