如何使用 Jasmine Marbles 为 Angular 的 HttpClient 编写单元测试?

Rob*_*ijn 2 testing rxjs angular jasmine-marbles

我有一个项目,我广泛使用角度 HttpClient 请求作为流的基础。我很想使用茉莉花弹珠来测试这些请求,因为它似乎是流单元测试的“行业标准”。

然而,我正在努力让整个事情正常工作,要么 HttpTestingController 失败,要么大理石失败。我建立了一个堆栈闪电战来证明我的观点。

小智 6

我是 RxJS 核心团队的一员,我不建议您使用茉莉花弹珠或一般弹珠测试来测试业务逻辑。我从来不需要使用那些。我强烈建议您为此使用 HttpClientTestingModule。维护起来更容易。

如果您正在实现自己的运算符,或者您想要测试边缘情况,例如订阅和取消订阅行为、对源可观察的影响等,那么 Marble 测试非常好。

我分叉了你的 stackblitz 并按照我的方式更改了其中一个测试用例: https://stackblitz.com/edit/angular-unit-tests-8fqyl1 ?file=src/testing/http-client.spec.ts