我已将我的代码移植到 WinRT 和 Rx 的 RTM 版本。我在我的 ViewModel 中使用 ReactiveUI。在移植代码之前,我的单元测试运行没有问题,但现在我有一个奇怪的行为。
这里是测试:
var sut = new MyViewModel();
myViewModel.MyCommand.Execute(null) //ReactiveAsyncCommand
Assert.AreEqaul(0, sut.Collection.Count)
如果我一步一步调试测试,断言并没有失败,但是使用测试运行器它失败了......
断言的集合由订阅命令的方法修改:
MyCommand.RegisterAsyncTask(_ => DoWork())
.ObserveOn(SynchronizationContext.Current)
.Subscribe(MethodModifyingCollection);
该代码在将其移至 RTM 之前正在运行。我还尝试在 Assert 之前删除ObserveOn
并添加一个,但没有成功。await Task.Delay()