0

在单元测试中模拟时遇到问题。

#!/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 并抱怨?

4

1 回答 1

0

尝试import foo在你的__import__线路之前做:我认为这会有所帮助。

于 2014-07-01T12:31:52.693 回答