首页 > 解决方案 > 如何使用 Jasmine Marbles 为 Angular 的 HttpClient 编写单元测试?

问题描述

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

然而,我正在努力让整个工作正常工作,要么 HttpTestingController 失败,要么弹珠失败。我已经建立了一个堆栈闪电战来证明我的观点。

标签: angulartestingrxjsjasmine-marbles

解决方案


我是 RxJS 核心团队的一员,我不建议您使用 jasmine marbles 或一般的大理石测试来测试业务逻辑。我从来不需要使用那些。我强烈建议您为此使用 HttpClientTestingModule。它更容易维护。

如果您正在实现自己的操作符,或者您想测试订阅和取消订阅行为、对源 observable 的影响等边缘情况,Marble 测试非常好。

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


推荐阅读