gpt4 book ai didi

python - 在 Python 中模拟导入的模块

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:20 26 4
gpt4 key购买 nike

我正在尝试为使用导入的外部对象的函数实现单元测试。

例如 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 的模拟库及其修补/包装功能。

http://www.voidspace.org.uk/python/mock/patch.html

关于python - 在 Python 中模拟导入的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com