社内アプリケーションの 1 つを使用して一連のテスト ケースを実行しようとしています。これらのテストを自動化し、コマンド ラインから実行して、さまざまなことをログに記録できるようにする必要があります。問題は、既存のコードがコントローラーからビューを分離せず、ユーザーにボタンをクリックするように求める MessageBoxes と Alerts をどこにでもスローすることです (私の場合は OK/CONTINUE だけです)。現在、アプリケーションが実行されているコンテキストを判断するのに役立つ状態フラグを導入することが決定されているため、 を実行するか を実行するかを決定できConsole.WriteLine()
ますMessageBox.Show()
。しかし、ご想像のとおり、これは多くの変更と汚れた if-else ブロックにカスケードされています。
残念ながら、この段階で座ってロジックをビューから切り離すことは現実的ではないようです。そのため、アプリケーションが実行されているコンテキストを検出する方法があるかどうか疑問に思っていました。MessageBox() 呼び出しのそれぞれを、それ自体がコンテキストを検出できる Notify() 呼び出しに置き換えたいと思います-コマンドプロンプトに出力を表示するか、フォームをポップアップするか。
EDIT_1: これを行うための他の提案も歓迎します。