【发布时间】:2020-06-11 16:03:40
【问题描述】:
我有一个格式的导入:
from a.b.c.d import x
在 foo.py 中。我正在测试 bla.py,它不会直接导入 foo.py,而是通过其中一种方法间接导入。类似的东西:
bla.m1() --> bla2.m2() --> foo.m3()
在我的测试环境中,包“a”不可用,我想模拟它,以便在测试期间导入不会失败。根据How to mock an import,我可以使用:
import sys
from unittest.mock import Mock
sys.modules['a.b.c.d'] = Mock()
如果我使用的是 Python 3,则导入在测试代码中有效,但在我使用 Python 2.7(和外部模拟库)时它会失败。为什么?如何让它在 Python 2.7 中工作?
【问题讨论】:
-
似乎正确的解决方法是在您的测试环境中放置包
a。
标签: python python-2.7 unit-testing