在单元测试中模拟时遇到问题。
#!/usr/bin/env python
import sys
sys.modules["foo.Bar"] = __import__("mock_bar")
import foo.Bar
print foo.Bar.__name__
我ImportError
在第 4 行有一个例外。我不知道为什么,因为我在第 3 行做了一些模拟。这里有一个关于如何模拟导入的参考。这是错误消息:
Traceback (most recent call last):
File "test.py", line 4, in <module>
import foo.Bar
ImportError: No module named foo.Bar
“import foo.Bar”应该等于“__import__('foo.Bar')”,在此之前我已经破解了 sys.modules 来假装模块 'foo.Bar' 已经被导入。为什么 python 仍然尝试导入 foo.Bar 并抱怨?