我试图为使用导入的外部对象的函数实现单元测试。在Python中嘲笑导入的模块
例如helpers.py是:
import os
import pylons
def some_func(arg):
...
var1 = os.path.exist(...)
var2 = os.path.getmtime(...)
var3 = pylons.request.environ['HTTP_HOST']
...
所以,当我创建单元测试它,我做了一些嘲讽(在我的情况minimock) 和更换引用pylons.request和OS .path:
import helpers
def test_some_func():
helpers.pylons.request = minimock.Mock("pylons.request")
helpers.pylons.request.environ = { 'HTTP_HOST': "localhost" }
helpers.os.path = minimock.Mock(....)
...
some_func(...)
# assert
...
这对我来说不太合适。
是否有其他更好的方法或策略来替代Python中的导入函数/对象?