0

ユニットテストでモックするときに問題があります。

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

4 行目にImportError例外があります。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 に答える