Модульное тестирование с помощью ObserveOnDispatcher - PullRequest
2 голосов
/ 02 февраля 2010

В моей модели представления есть код:

miService.GetSomething(par1, par2)
.ObserveOnDispatcher()
.Subscribe(dt =>
 {
    DoSomething(dt);
 });

Затем в моем тесте я "издеваюсь" над своим сервисом следующим образом:

miService.Setup(ms => ms.GetSomething(....))
.Returns(Observable.Return(XYZ));

Проблема в том, что из-за ObserveOnDispatcher делегат подписки никогда не выполняется.

Я видел некоторый код с DispatcherFrame и PushFrame, но проблема в том, что я не знаю «где», я могу позвонить

frame.Continue = false;

1 Ответ

5 голосов
/ 02 февраля 2010

Вы можете попробовать

var frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(
  DispatcherPriority.Background, 
  new Action(() => frame.Continue = false));
Dispatcher.PushFrame(frame);
...