小编Ada*_*dam的帖子

模拟/测试对Path.open的调用

我正在尝试为在上调用open方法的函数编写单元测试pathlib.Path。我能够成功地模拟open方法而不会出现问题,但是很难验证函数是否具有正确的行为。请参见下面的示例代码:

def test_my_function(self):
    with patch.object(Path, 'open') as mock_open:
        my_function(*args)  # This function calls Path.open
Run Code Online (Sandbox Code Playgroud)

当我进行内省mock_open和检查_mock_mock_calls列表时,无法找到要写入的文件的字符串路径。通话记录如下:

[
    call(mode='w'),
    call().__enter__(),
    call().__enter__().write('<file contents>'),
    call().__enter__().flush(),
    call().__exit__(None, None, None),
]
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以测试Path.open调用时正在打开的路径?

python mocking pathlib

5
推荐指数
1
解决办法
220
查看次数

标签 统计

mocking ×1

pathlib ×1

python ×1