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

时间:2018-08-14 01:17:31

标签: python unit-testing

假设我们有以下代码:

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. 存根私有_get_config_content()函数,并使其仅返回假结果。

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

哪种方法更好?还是有其他方法可以在单元测试中存根文件系统?

1 个答案:

答案 0 :(得分:0)

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