我有一个正在测试的模块依赖于另一个在测试时不可用的模块。为了解决这个问题,我(基本上)写道:
import mock
import sys
sys.modules['parent_module.unavailable_module'] = mock.MagicMock()
import module_under_test
只要module_under_test
执行以下操作之一,它就import parent_module
可以正常工作import parent_module.unavailable_module
。但是,以下代码会生成回溯:
>>> from parent_module import unavailable_module
ImportError: cannot import name unavailable_module
这是怎么回事?我可以在我的测试代码中做什么(不更改导入语句)以避免此错误?