単体テスト時に Dispatcher に渡すデリゲートを Dispatcher で実行するのに問題があります。プログラムを実行しているときはすべて正常に動作しますが、単体テスト中は次のコードが実行されません。
this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
this.Users.Clear();
foreach (User user in e.Results)
{
this.Users.Add(user);
}
}), DispatcherPriority.Normal, null);
Dispatcher を取得するために、ビューモデルの基本クラスに次のコードがあります。
if (Application.Current != null)
{
this.Dispatcher = Application.Current.Dispatcher;
}
else
{
this.Dispatcher = Dispatcher.CurrentDispatcher;
}
単体テスト用に Dispatcher を初期化するために必要なことはありますか? Dispatcher がデリゲート内のコードを実行することはありません。