使用' real'测试rx延迟

时间:2015-10-23 07:11:15

标签: c# testing system.reactive

我一直在研究保护'来自慢速观察者的可观察来源,通过丢弃观察者工作时进来的任何新物品。

看了ObserveLatestOn(并且发现它有点难以理解......),我偶然发现了这个答案,建议在订阅中进行,而不是在Observable monad中。

这给出了类似的东西(没有显示委托重载的版本):

public static IDisposable NonBlockingSubscribe<T>(this IObservable<T> observable, 
                                                       IObserver<T> observer)
{
    Task task = null;
    return observable.Subscribe(value =>
    {
        if(task == null || task.IsCompleted)
            task = Task.Run(() => observer.OnNext(value));
    }, observer.OnError, observer.OnCompleted);
}

现在的挑战是如何使用ReactiveTest和虚拟时间为此编写测试。

我已经看到了this问题的答案,其中涉及使用TestScheduler生成一个&#39; ticker&#39;这可以反过来用来创建一个AsyncSelector,但我有点不知道如何从那里去到可以等待给定数量的刻度的东西。

0 个答案:

没有答案