试图了解哪些是对RXjs 5订阅进行单元测试的最佳方式。 例如,如果我在订阅块中有一个复杂的observables链和一些业务逻辑,我应该如何测试它? 我看到的选项是:
任何建议或想法都会非常有用
答案 0 :(得分:0)
如果您断言从链返回的可观察对象与您的大理石图匹配,那么您还在测试观察者方法是否被正确调用。如果要测试观察者方法,我将独立进行。
使用大理石测试,您可以测试Observable是否已订阅。假设您有以下可观察的来源。
const source = m.hot("--^-a-b-c-|");
然后您可以测试您的观察对象是否具有正确的订阅:
const expectedSubscription = "^-------!";
m.expect(source).toHaveSubscriptions(subs);
当然,这取决于您使用的版本以及使用的大理石库。 (语法可能不同)。还有一个很好的博客文章,可以使您对整个主题有一个很好的概述。 https://itnext.io/findings-about-rxjs-marble-testing-and-the-testscheduler-b23c6bdf6b49