J'ai du mal à faire en sorte que le répartiteur exécute un délégué que je lui passe lors des tests unitaires. Tout fonctionne bien lorsque j'exécute le programme, mais, lors d'un test unitaire, le code suivant ne s'exécute pas :
this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
this.Users.Clear();
foreach (User user in e.Results)
{
this.Users.Add(user);
}
}), DispatcherPriority.Normal, null);
J'ai ce code dans ma classe de base viewmodel pour obtenir un Dispatcher :
if (Application.Current != null)
{
this.Dispatcher = Application.Current.Dispatcher;
}
else
{
this.Dispatcher = Dispatcher.CurrentDispatcher;
}
Y a-t-il quelque chose que je doive faire pour initialiser le Dispatcher pour les tests unitaires ? Le Dispatcher n'exécute jamais le code dans le délégué.
0 votes
Je n'obtiens aucune erreur. Ce qui est passé à BeginInvoke sur le Dispatcher ne s'exécute jamais.
1 votes
Je vais être honnête et dire que je n'ai pas encore eu à tester unitairement un modèle de vue qui utilise un répartiteur. Est-il possible que le répartiteur ne fonctionne pas ? L'appel à Dispatcher.CurrentDispatcher.Run() dans votre test serait-il utile ? Je suis curieux, alors postez les résultats si vous les obtenez.