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



假设我们有这些代码:

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函数,并使其返回假文件对象。

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

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

相关内容

最新更新