PRISM イベント アグリゲーターを介してイベントをサブスクライブするクラスがあります。
hereに記載されているように、イベント アグリゲーターをモックするのはやや難しいため、実際のイベント アグリゲーターをインスタンス化して、テスト対象のシステムに渡します。
私のテストでは、そのアグリゲーターを介してイベントを公開し、テスト対象のシステムがそれにどのように反応するかを確認します。イベントは本番中に FileSystemWatcher によって発生するため、UIThread をサブスクライブして自動ディスパッチを利用したいので、イベントが発生したら UI を更新できます。
問題は、テスト中に、UIThread をサブスクライブしない限り、テスト中のシステムでイベントが認識されないことです。
TDD.Net 経由で VS2008 内から実行するテストに MSpec を使用しています。テストクラスに追加[RequiresSta]
しても役に立たなかった
私のテスト中に ThreadOption を変更することから私を救う解決策はありますか(たとえば、プロパティを介して - なんて醜いハック)???