小编jit*_*dea的帖子

使用ObserveOnDispatcher对IObservable <T>进行单元测试

我需要测试一段代码

        var watcher = new FakeIFileSystemWatcher();
        watcher.FilesToBeImported
            .ObserveOnDispatcher()
            .Subscribe(list.Add);
Run Code Online (Sandbox Code Playgroud)

所以我创建了这个小单元测试,但我不能让它通过原因list.Count始终为0

    [Test]
    public void Foo()
    {
        var list = new List<string>();

        var watcher = new FakeIFileSystemWatcher();
        watcher.FilesToBeImported
            .ObserveOnDispatcher()
            .Subscribe(list.Add);

        Task task = Task.Factory.StartNew(() =>
        {                
            watcher.AddFile("cc");
            watcher.AddFile("cc");
            watcher.AddFile("cc");
        }, TaskCreationOptions.LongRunning);
        Task.WaitAll(task);

        Assert.AreEqual(3, list.Count);
    }
Run Code Online (Sandbox Code Playgroud)

如果我注释掉这个方法

            .ObserveOnDispatcher()
Run Code Online (Sandbox Code Playgroud)

它通过但我如何使用ObserveOnDispatcher()?

c# linq reactiveui

5
推荐指数
2
解决办法
1595
查看次数

标签 统计

c# ×1

linq ×1

reactiveui ×1