单元测试Observable(Subject <t>)</t>

时间:2012-01-02 18:04:05

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

我得到一个Repository,其中有一个名为 Mutations 的公开Subject<Item>可以订阅。可以更容易地将observable视为Item的流,其中源将主要是套接字连接。

我使用Repository.Mutations.Subscribe(item => DoWhatever(item));

等订阅流

我有一个模拟的数据源,我想要推送项目以测试存储库中的Stream / Observable是否正在执行它的工作。

我一直在阅读很多关于在Rx中使用TestScheduler()的内容,但在尝试创建单元测试以及如何使用我自己的代码调用此调度程序时,我完全迷失了。

不可否认,我是Rx的初学者,但我希望有人可以给我一两个提示。

1 个答案:

答案 0 :(得分:1)

如果您要查看项目是否由Mutations属性生成,您可以按照自己的方式进行操作,但只需在测试代码中验证实际的订阅方法是否已被调用,例如:

Item expectedItem = new Item();
Item actualItem = null;
Repository.Mutations.Subscribe(item => actualItem = item);
dataSource.PushItem(expectedItem);

Assert.AreSame(expectedItem, actualItem);