我有一个以递归方式在目录中搜索.json文件的函数。它使用pathlib
。
def search(where: Path) -> List[Path]: ...
我想对它进行单元测试,因此我需要创建一个带有子项的假Path
对象,以便fake_path.iterdir()
和fake_path.resolve()
能够正常运行。
理想情况下,我想要这个:
topdir = FakePath()
subdir1 = FakePath()
subdir1.add_children(Path('file1'), Path('file2'))
topdir.add_children(subdir1)
for dir in topdir.iterdir():
for file in dir.iterdir():
print(file.name)
>> file1
>> file2
并使其在此之后表现得像普通的Path对象。
有没有这样做的图书馆?或者pathlib
可以做我想做的事,而我只是盲目的?
(我知道我可以创建临时文件,但我更喜欢在单元测试中没有任何IO。)