我需要用python测试一个模块。你知道吗
我正在使用unittest框架,但遇到了一个问题。你知道吗
模块有一些方法定义,其中一个方法定义在导入(readConfiguration)时使用,如下所示:
.
.
.
def readConfiguration(file = "default.xml"):
# do some reading from xml
readConfiguration()
这是一个问题,因为当我尝试导入模块时,它也尝试运行“readConfiguration”方法,该方法使模块和程序失败(测试环境中不存在配置文件)。你知道吗
我想能够独立于任何配置文件测试模块。你知道吗
我没有编写模块,无法重新分解。你知道吗
我知道我可以包括一个虚拟配置文件,但我正在寻找一个“更干净”,更优雅,解决方案。你知道吗
正如评论人士已经指出的那样,导入永远不会有副作用,所以如果可能的话,尝试更改模块。你知道吗
如果您确实绝对不能这样做,那么可能还有另一种方法:让} documentation 中所示:
readConfiguration()
被调用,但是去掉它的依赖项。例如,如果它使用内置的open()
函数,您可以模拟它,如^{如果需要提供实际内容,请将
sentinel.file_handle
替换为StringIO("<contents of mock config file>")
。你知道吗它是脆弱的,因为它依赖于
readConfiguration()
的实现,但是如果真的没有其他方法,它可能是最后的手段。你知道吗相关问题 更多 >
编程相关推荐