Question

J'ai un code dans mon modèle de vue comme suit:

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

Alors dans mon test, je suis "moqueur" mon service comme suit:

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

Le problème est qu'en raison de la ObserveOnDispatcher, la souscription délégué n'est jamais exécuté.

Je l'ai vu avec un code DispatcherFrame et PushFrame, mais le problème est que je ne sais pas « où », je peux appeler

frame.Continue = false;
Était-ce utile?

La solution

Vous pouvez essayer

var frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(
  DispatcherPriority.Background, 
  new Action(() => frame.Continue = false));
Dispatcher.PushFrame(frame);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top