我正在一个角度应用程序中测试 Ngrx 商店效果。作为副作用,我的一个效果有一个使用材质 MatDialog 组件弹出的模态。
我想要做的是运行一个测试,其中效果由一个动作启动,这会触发垫子对话框的出现。然后我想测试单击是/否,然后继续检查结果操作(或缺少操作)。
我们正在使用 rxjs-marbles 来测试我们的商店。
RxJs 似乎并没有大量的示例,但我收集到我需要使用 TestScheduler 来处理这种类型的场景。不过,我不确定它是如何工作的。我正在做很多研究,但没有取得很大进展。
基本上,作为大理石,它看起来像这样:
-a-b-c
其中a
是初始操作,b
是用户在对话框中的点击,c
是结果(c
是可选的,如果用户点击“否”,则不会有结果操作。
我不是要求任何人编写我的代码,只是为我指明正确的方向。我即将开始阅读 TestScheduler 的源代码以更好地理解它,因为我什至不确定在这种情况下是否应该使用它。
基本上,如何编写这样的测试,其中有可观察的流与使用弹珠的模拟用户输入相结合?