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

2024-03-28 17:40:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

其中一个文件要求存在一个特定的文件。(例如“/dir_name/file_名称.txt)否则将引发错误。在

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

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

这是Python3.4。有没有可能用unittest.mock来完成这个任务?在


Tags: 文件代码name路径txt名称硬件文件名
1条回答
网友
1楼 · 发布于 2024-03-28 17:40:38

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

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()

相关问题 更多 >