在python中进行单元测试期间打开配置或文件的好方法是什么?

时间:2016-09-22 09:54:03

标签: python unit-testing python-unittest

我想知道在单元测试期间读取配置文件或本地文件的好方法是什么。

我认为可能要么在一段时间内编写测试配置文件。例如:

def setUp(self):
    self.config = ConfigParser.RawConfigParser()
    self.config.add_section('TestingSection')
    self.config.set('TestingSection', 'x', '1')

    with open('local_file.txt', 'w') as f:
        f.write('testing_value')

或文件可以在测试之前准备好,我们只是在测试期间打开它们,例如:

def setUp(self):
    self.config = ConfigParser.RawConfigParser()
    self.config('local_config_file_path')

    with open('local_file.txt', 'r') as f:
        self.testing_value = f.read()

我不确定哪些是在单元测试期间读取文件的更好方法,希望有些专家可以帮助我。

如果你有更好的方法,请与我分享。

谢谢。

1 个答案:

答案 0 :(得分:1)

一个好方法是不必打开它们。

对于依赖配置文件的函数,您可以创建一个伪对象,该对象实现特定函数所依赖的必需方法。它可能只是一个get方法,支持获取"部分"。

这是在利用duck typing。你的python函数并不关心它们获得的实际对象,因为它实现了它期望的配置解析器方法。

在某些时候你必须测试边缘"您的应用程序,入口点。我猜测入口点函数已执行,它从文件系统加载并解析配置文件。单个测试应该能够在python核心中测试这个,因为配置解析器已经过测试。

在这个测试中,我将创建一个named temporary file,并使用该文件路径作为主函数的输入,以确保它至少可以无错误地执行。从技术上讲,这可能是一个与文件系统交互的集成测试。