Tengo problemas para lograr que Dispatcher ejecute un delegado que le paso al probar la unidad. Todo funciona bien cuando estoy ejecutando el programa, pero, durante una prueba de unidad el siguiente código no funcionará:Uso de WPF Dispatcher en pruebas unitarias
this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
this.Users.Clear();
foreach (User user in e.Results)
{
this.Users.Add(user);
}
}), DispatcherPriority.Normal, null);
tengo este código en mi clase base para conseguir un modelo de vista Dispatcher:
if (Application.Current != null)
{
this.Dispatcher = Application.Current.Dispatcher;
}
else
{
this.Dispatcher = Dispatcher.CurrentDispatcher;
}
¿Hay algo que deba hacer para inicializar el Dispatcher para las pruebas unitarias? El despachador nunca ejecuta el código en el delegado.
¿Qué error recibes? –
No obtengo ningún error. Justo lo que se pasa a BeginInvoke en el Dispatcher nunca se ejecuta. –
Seré honesto y diré que no he tenido que probar un modelo de vista que aún utiliza un despachador. ¿Es posible que el despachador no se esté ejecutando? ¿Llamaría a Dispatcher.CurrentDispatcher.Run() en la ayuda de prueba? Tengo curiosidad, así que publica los resultados si los obtienes. –