TestScheduler的多线程问题

时间:2019-05-31 15:51:31

标签: c# multithreading unit-testing system.reactive

我正在使用Microsoft.Reactive.Testing(4.1.5),使用Buffer方法时遇到一些问题。我的单元测试在断言错误中停止,但是在发生此异常后,缓冲功能在另一个线程中继续起作用。

如何处理此多线程问题?

这是一个dotnet core 2.2应用程序。除使用Buffer方法外,所有单元测试都可以。

observable
    .SelectMany(msg => msg.ObjectList)
    .Buffer(TimeSpan.FromMilliseconds(150));

var scheduler = new TestScheduler(); 
var source = scheduler.CreateHotObservable(records);   
var testObserver = scheduler.CreateObserver<IList<MyObject>>();

observable.Subscribe(testObserver);

scheduler.AdvanceBy(TimeSpan.FromMilliseconds(300).Ticks);
testObserver.Messages
            .Should().HaveCount(1);

0 个答案:

没有答案