単体テストとして、一連の GUI 画面で定義されたインポートがプログラム的に意味があることをテストできるようにしたいと考えています。何も実行する必要はありません。
import main_screen
インポートのチェーン中に何かが落ちるかどうかを確認します。私は sys.modules トリックを使用する限り持っています:
import my_fake_module
sys.modules['module_i_want_to_fake'] = my_fake_module
何かがうまくいくまで、これはうまくいきます:
from module_i_want_to_fake import real_attribute
もちろん、スタブアウトされたメソッド/クラスを my_fake_module に追加しない限り、ImportError が発生しますが、これを実用的にするには多すぎます。
my_fake_module からのインポートをフックして、常に成功するようにする方法はありますか? 繰り返しますが、何もする必要はありません。簡単な方法があると思いますが、今のところ私を逃れています...