如何在unittest中模拟python模块

时间:2013-03-14 11:41:41

标签: python mocking

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

#!/usr/bin/env python
import sys
sys.modules["foo.Bar"] = __import__("mock_bar")
import foo.Bar
print foo.Bar.__name__

我在第4行有一个ImportError异常。我不知道为什么因为我在第3行做了一些模拟。有一个如何模拟导入here的参考。 这是错误消息:

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

1 个答案:

答案 0 :(得分:0)

import foo行之前尝试__import__:我认为这可能会有所帮助。