我有一个python实用程序,它在内部使用locate命令。它用它相应的完整文件路径替换文件名。
>>> complete_path('cd baz')
'cd foo/bar/baz'
如何编写与此功能相对应的测试,因为此命令的输出在每个系统上都是可变的?我是否必须在固定的虚拟文件结构中运行此代码,然后使用固定路径断言它的输出?怎么做?
答案 0 :(得分:1)
我不知道你的函数是什么样的,但如果你使用的是pytest,那么就会这样做:
def test_complete_path(monkeypatch):
def mockreturn(path):
return 'cd /abc/def/g'
monkeypatch.setattr(external_module, 'external_function', mockreturn)
res = complete_path('cd g')
assert res == 'cd /abc/def/g'