別のモジュールからインポートされた別のメソッドを呼び出すモジュールに次のメソッドがあります。
def imported_function():
do_unnecessary_things_for_unittest()
上記の関数をテスト、インポート、および使用する必要がある実際のメソッド:
from somewhere import imported_function
def function_to_be_tested():
imported_function()
do_something_more()
return 42
import_function内の内部呼び出しと関連する計算は重要ではなく、テストしたいものではないため、実際の関数function_to_be_testedをテストするときにスキップしたいと思います。
したがって、テストメソッド内のどこかに名前が付けられたモジュールにモンキーパッチを適用しようとしましたが、うまくいきませんでした。
def test_function_to_be_tested(self):
import somewhere
somewhere.__dict__['imported_function'] = lambda : True
問題は、テスト中にモジュールのメソッドにモンキーパッチを適用して、テストフェーズ中に呼び出されないようにする方法です。