angular - 如何使用 Jasmine Marbles 为 Angular 的 HttpClient 编写单元测试?
问题描述
我有一个项目,我广泛使用角度 HttpClient 请求作为流的基础。我很想使用 jasmine marble 测试这些请求,因为它似乎是流单元测试的“行业标准”。
然而,我正在努力让整个工作正常工作,要么 HttpTestingController 失败,要么弹珠失败。我已经建立了一个堆栈闪电战来证明我的观点。
解决方案
我是 RxJS 核心团队的一员,我不建议您使用 jasmine marbles 或一般的大理石测试来测试业务逻辑。我从来不需要使用那些。我强烈建议您为此使用 HttpClientTestingModule。它更容易维护。
如果您正在实现自己的操作符,或者您想测试订阅和取消订阅行为、对源 observable 的影响等边缘情况,Marble 测试非常好。
我分叉了你的 stackblitz 并按照我的方式更改了一个测试用例: https ://stackblitz.com/edit/angular-unit-tests-8fqyl1?file=src/testing/http-client.spec.ts
推荐阅读
- powershell - 在文件 Powershell 中运行脚本时对特殊字符进行编码
- vb.net - 如何从同一解决方案中的 .NET Framework 类库项目访问属于 .NET Core Web API 项目的 appSettings.json?
- reactjs - 更改代码后如何使用 PM2 自动构建
- lisp - 访问整数位的函数的 Common Lisp setf 扩展
- mysql - mysql ) 如何使用 group by 打印,包括 count 为 0 时
- kubernetes - Kubernetes 集群中的免费节点端口
- javascript - 反应导航 - 导航到嵌套堆栈时从主堆栈中隐藏 ui
- javascript - Angular 跟踪文件上传进度在上传完成前达到 100%
- api-platform.com - ApiPlatform SearchFilter 返回所有结果的问题
- spring - 相同调用的微服务响应时间