我想知道在单元测试期间读取配置文件或本地文件的好方法是什么。
我认为可能要么在一段时间内编写测试配置文件。例如:
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()
我不确定哪些是在单元测试期间读取文件的更好方法,希望有些专家可以帮助我。
如果你有更好的方法,请与我分享。
谢谢。
答案 0 :(得分:1)
一个好方法是不必打开它们。
对于依赖配置文件的函数,您可以创建一个伪对象,该对象实现特定函数所依赖的必需方法。它可能只是一个get
方法,支持获取"部分"。
这是在利用duck typing。你的python函数并不关心它们获得的实际对象,因为它实现了它期望的配置解析器方法。
在某些时候你必须测试边缘"您的应用程序,入口点。我猜测入口点函数已执行,它从文件系统加载并解析配置文件。单个测试应该能够在python核心中测试这个,因为配置解析器已经过测试。
在这个测试中,我将创建一个named temporary file,并使用该文件路径作为主函数的输入,以确保它至少可以无错误地执行。从技术上讲,这可能是一个与文件系统交互的集成测试。