私は現在、1年前に開始されたプロジェクトの新人です。
このプロジェクトでは、C#、WPF、PRISM (CAL)、Entity Framework、LINQ などを使用しています。アプリケーションは、MVVM パターンを使用して行われます。
単体テストはいくつかありますが、機能テストを依頼されたのは、すべてのコンポーネントを一緒に使用したときにほとんどのバグが見つかったためです。
MSTEST プロジェクトの作成を開始しました。私の目標は、アプリケーション バックエンド全体 (モデルとビューモデル) を開始し、UI イベントをシミュレートし、1 つ以上のビューモデル プロパティにアクセスするモデルの変更を確認することでした。
私の最初のゲストは、エンティティ コンテキスト (モデル) を作成し、すべての PRISM モジュールを初期化し、ビューモデルでイベントの公開を開始して、モデルを変更し、同じまたは他のビューモデルで結果を確認することでした。そうしなければならなかった :
- プリズム Boosttrapper クラスをオーバーライドする
- 簡単なアプリケーションを作成します (MSTEST では
System.Windows.Application.Current
null のように見えるため)。からクラスを派生させましたSystem.Windows.Application
。
UnityContainer を使用して、すべてのインターフェース実装にアクセスできます。私が今抱えている問題は、が機能してIEventAggregator
いないことです。イベントは発生しません。プリズムモジュール間でイベントを発生させたいので、イベントアグリゲーターをモックしたくありません (ユニットテストではなく、機能テストを行っています)。
Dispatcher
とをいじって動作させる方法を見つけましたが、失敗したように見える にDispatcherFrame
在庫があります。RegionManager
私の質問は: 必ずしもユーザー インターフェイスを表示せずに機能/統合テストを行うより良い方法はありますか?