0

我有一个函数可以递归地搜索目录中的 .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。)

4

0 回答 0