关于python:如何替换被测模块的文件访问引用

How to replace file-access references for a module under test

pyfakefs听起来非常有用:"它最初是作为核心Python模块的适度虚假实现而开发的,以支持中等复杂的文件系统交互,并于2006年9月在Google范围内推出。经过充分测试的)贡献,以扩展其功能和实用性,并且已在900多个Google Python测试中使用。"

文档似乎仅在源代码本身的文档字符串中可用。它说明该模块提供以下元素:

  • FakeFile:提供真实文件的外观。
  • FakeDirectory:提供真实目录的外观。
  • FakeFilesystem:提供真实目录层次结构的外观。
  • FakeOsModule:使用FakeFilesystem提供伪造的os模块替换。
  • FakePathModule:伪造的os.path模块替换。
  • FakeFileOpen:伪造的file()和open()函数替换。

但是,文档没有说明如何在测试中有效使用这些元素。

确保被测模块访问假文件系统而不访问真实文件系统的正确方法是什么?


请参阅http://github.com/jmcgeheeiv/pyfakefs,以获取支持unittest和doctest的代码,以及一个实际的示例和教程。