WinRTとRxの両方のRTMバージョンにコードを移植しました。ViewModelsで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に移動する前に機能していました。また、を削除して、アサートObserveOn
の前に追加しようとしましたがawait Task.Delay()
、成功しませんでした。