sh0*_*731 6 python unit-testing nose python-unittest
我正在为 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()
Run Code Online (Sandbox Code Playgroud)