单元测试:在产品代码中存根文件系统层

2024-04-19 06:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有以下代码:

def judgement():
    content = _get_config_content()
    # do something in content
    return content + '.'


def _get_config_content():
    with open('test_config', 'r') as f:
        return f.read()

我想测试judgement函数,正如我们看到的那样:判断函数正在调用_get_config_content(),它的目标是私有的,_get_config_content()将打开文件并读取它。你知道吗

最好去掉文件读取部分,有两种方法来存根文件读取逻辑:

  1. stub private_get_config_content()函数,并使其仅返回假结果。

  2. 存根内置的open函数,并使其返回假文件对象。

哪条路更好?或者在单元测试中是否有其他方法来存根文件系统?你知道吗


Tags: 文件方法函数代码inconfiggetreturn
1条回答
网友
1楼 · 发布于 2024-04-19 06:28:39

在这种情况下,我建议存根_get_config_content():a)它更简单,因为您只需要存根一个函数。b) 您不会损失太多,因为单元测试没有太多价值_get_config_content():无论如何,该函数应该在集成测试中进行测试。你知道吗

相关问题 更多 >