GUIが絡むアプリケーションを作っていて困るのは、テストを意識せずにマニュアル通りの手順で作ってしまうと単体テストが容易に実行出来ない点だ。入力がGUI依存ではテストコードから上手く呼び出せないし、また処理結果をGUIに表示するような構成では人間が目視しない限り結果の成否を判断出来ない。 だから、このようなアプリケーションの開発では、単体テストでの検証を考慮して下記のような設計にしておく必要が有る。 GUIレイヤーと、実際の処理を行うレイヤーを分離しておく。実動作時はGUIから、単体テスト実行時はテストコードから、実処理を行うレイヤーの機能を呼び出す。もちろん実処理を行うレイヤーはGUIレイヤーに依存しないようにしておく。 実処理レイヤーの結果は、デザインパターンのオブザーバーパターンにてGUIレイヤーに通知し、GUIを更新させる。これなら単体テスト実行時にはGUIに関係なく(呼び出すこと