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:参数计数不匹配。抱歉-应该先编译我的代码。尝试更新的版本。