问题标签 [jasmine-marbles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
79 浏览

angular - 如何在可观察流的测试中模拟 Angular HttpClient 响应?

我有一个最终触发对 Angular HttpClient 的调用的 observable。我需要模拟来自 HttpClient 的响应,但是我不知道如何在 TestScheduler 运行方法的上下文中执行它。假设我有以下测试:

transferObservable级联时发出的值switchMap调用服务,该服务又通过 Angular HttpClient 发送 GET 请求;结果值是从 发出的sut.data$

我尝试在 scheduler.run 方法内外的不同位置放置以下行,但我总是得到相同的错误:Expected one matching request for criteria "Match URL: http://foo", found none.

大致在哪里以及如何模拟单个调用http://foo并刷新expectedData为所需的响应?

编辑精简beforeEach设置,显示以下配置HttpTestingController

编辑 2:调试时我的服务中的 HttpClient 实例的屏幕截图。

在此处输入图像描述

编辑 3: Stackblitz 在这里发布。失败的测试contract$ should return contract是令人感兴趣的。