首页 > 解决方案 > 如何对 void 值的可观察值进行大理石测试?

问题描述

使用 RXJS TestScheduler,有没有一种很好的方法来大理石测试一个类似事件的可观察对象,它发出undefined值?

我正在使用 TypeScript,所以类型规避/猴子修补是不可取的。

testScheduler.schedule(() => valueEmittingWork(), 20);
testScheduler.schedule(() => valueEmittingWork(), 40);

testScheduler.run(rx => {
    rx.expectObservable(myObservable).toBe(`20ms ??? 19ms ???`);
    // Above uses the new time progression syntax. What do I put instead of ???
});

标签: unit-testingrxjsrxjs-marbles

解决方案


作为一种解决方法,我通过管道传输了 observable 的源.mapTo('a'),然后能够编写:

testScheduler.run(rx => {
    rx.expectObservable(myObservable.pipe(mapTo('a'))).toBe(`20ms a 19ms a`);
});

推荐阅读