C# 使用ObserveOnDispatcher进行单元测试

C# 使用ObserveOnDispatcher进行单元测试,c#,wpf,unit-testing,system.reactive,dispatcher,C#,Wpf,Unit Testing,System.reactive,Dispatcher,我的视图模型中有一些代码,如下所示: miService.GetSomething(par1, par2) .ObserveOnDispatcher() .Subscribe(dt => { DoSomething(dt); }); miService.Setup(ms => ms.GetSomething(....)) .Returns(Observable.Return(XYZ)); 然后在我的测试中,我模仿我的服务如下: miService.GetSomethi

我的视图模型中有一些代码,如下所示:

miService.GetSomething(par1, par2)
.ObserveOnDispatcher()
.Subscribe(dt =>
 {
    DoSomething(dt);
 });
miService.Setup(ms => ms.GetSomething(....))
.Returns(Observable.Return(XYZ));
然后在我的测试中,我模仿我的服务如下:

miService.GetSomething(par1, par2)
.ObserveOnDispatcher()
.Subscribe(dt =>
 {
    DoSomething(dt);
 });
miService.Setup(ms => ms.GetSomething(....))
.Returns(Observable.Return(XYZ));
问题是由于ObserveOnDispatcher,subscribe委托永远不会执行

我看过一些DispatcherFrame和PushFrame的代码,但问题是我不知道在哪里可以调用

frame.Continue = false;
你可以试试

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

很抱歉,这段代码甚至没有编译。如果更改为:Dispatcher.CurrentDispatcher.BeginInvoke DispatcherPriority.Background,则new DispatcherOperationCallbacko=>{frame.Continue=false;返回null;//或返回null;};我得到以下异常:System.Reflection.TargetParameterCountException:参数计数不匹配。抱歉-应该先编译我的代码。尝试更新的版本。