我正在尝试为使用导入的外部对象的函数实现单元测试。
例如 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 中的导入函数/对象?
最佳答案
使用 voidspace 的模拟库及其修补/包装功能。
关于python - 在 Python 中模拟导入的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348712/