単体テスト時に代理人を実行するためにDispatcherを呼び出すのに問題があります。私はプログラムを実行しているとき、すべてが正常に動作しますが、ユニットテスト中に次のコードは実行されません。単体テストでWPFディスパッチャを使用する
this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
this.Users.Clear();
foreach (User user in e.Results)
{
this.Users.Add(user);
}
}), DispatcherPriority.Normal, null);
を私はディスパッチャを得るために、私のviewmodel基底クラスでこのコードを持っている:
if (Application.Current != null)
{
this.Dispatcher = Application.Current.Dispatcher;
}
else
{
this.Dispatcher = Dispatcher.CurrentDispatcher;
}
ユニットテストのためにディスパッチャを初期化するために必要なことはありますか? Dispatcherはデリゲート内でコードを実行しません。
どのようなエラーが表示されますか? –
エラーは発生しません。 DispatcherのBeginInvokeに渡されたものは決して実行されません。 –
私は正直で、ディスパッチャーをまだ利用しているビューモデルをユニットテストする必要はなかったと言います。ディスパッチャが実行されていない可能性がありますか?あなたのテストのヘルプでDispatcher.CurrentDispatcher.Run()を呼び出すのでしょうか?私は好奇心が強いので、もしあなたがそれらを取得した場合、結果を投稿してください。 –