我可以在 python 中“伪造”一个包(或至少一个模块)以用于测试目的吗?

2024-03-21

我想用 python 伪造一个包。我想定义一些东西以便代码可以做

from somefakepackage.morefakestuff import somethingfake

somefakepackage 是在代码中定义的,其下面的所有内容也是如此。那可能吗?这样做的原因是为了欺骗我的单元测试,让我在 python 路径中得到一个包(或者正如我在标题中所说的,一个模块),这实际上只是为此单元测试模拟的东西。


当然。定义一个类,将你需要的东西放入其中,将类分配给sys.modules["classname"].

class fakemodule(object):

    @staticmethod
    def method(a, b):
        return a+b

import sys
sys.modules["package.module"] = fakemodule

您还可以使用单独的模块(称之为fakemodule.py):

import fakemodule, sys

sys.modules["package.module"] = fakemodule
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 python 中“伪造”一个包(或至少一个模块)以用于测试目的吗? 的相关文章

随机推荐