Python单元测试的模拟pathlib.path对象

6l7fqoea  于 2023-04-19  发布在  Python
关注(0)|答案(1)|浏览(116)

我想从pathlib中模拟Path类。让我们假设我有一个名为functionX()的函数,其中正在创建Path对象。这会抛出一个exeception。我如何才能使其工作?我的测试如下所示:

@patch('pathlib.Path')
def test_start(self, patch_path):
    patch_path.is_file.return_value = True
    patch_path.exists.return_value = True
    x = functionX() 
    self.assertTrue(x)
def functionX(): 
    p=Path("/some/non/existing/path/to/a/file.hpp")
    if p.exists() and p.is_file():
        return True

输出如下:

AttributeError: type object 'Path' has no attribute '_flavour'

谁能帮帮我?
使用pathlib3x而不是pathlib解决了异常的问题。但是现在我遇到了函数is_file()和exists()没有像return_value中提到的那样执行。

idv4meu8

idv4meu81#

用这个解决了我的问题:

@patch('pathlib3x.Path.exists')
@patch('pathlib3x.Path.is_file')
def test_start(self, patch_isfile, patch_exists):
    patch_isfile.return_value = True
    patch_exists.return_value = True

相关问题