我需要测试一个在导入时调用函数的模块,但是由于各种原因我不能调用这个函数。所以我模仿了这个函数,但即使是模仿它也会调用import。在
例如,我测试的mod1.py如下所示:
import os
def bar():
return 'foo'
def dont_call():
os.listdir("C:\\tmp")
dont_call()
我的测试结果是这样的:
^{pr2}$问题是操作系统列表目录被称为。在
我不能改变mod1,那我能做什么?在
我用的是python2.7。在
为了将这一点放在上下文中,我正在测试一个模块,该模块在导入时打开一个数据库连接,我不同意,但我可以看到背后的原因。不幸的是,我不能在QA机器上访问这个数据库。在
我找到的解决办法是模仿dont_call的电话给我这样的东西:
如果要在导入时“不”执行代码,请将其置于以下条件内:
在mod1.py中,执行以下操作:
这是因为,默认情况下,当您导入python模块时,它中的所有代码都将被执行。通过添加上面的条件,可以明确地声明只有当文件作为脚本运行时才调用dont_call(),而不是在其他模块中导入该文件时。在
相关问题 更多 >
编程相关推荐