问题标签 [httptestingcontroller]
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.
angular - 包含 HTTP 订阅的服务方法的测试用例 - Angular HTTP RxJs
我有一个服务方法,它有一个服务调用(HTTP 调用),它立即订阅,并根据响应代码执行其余的操作命令。
示例:服务方法
我尝试了以下示例(测试用例)
请帮助我如何处理这种情况。
angular - Angular 8 Jasmine 不匹配 HTTP 请求
我有一个 Angular 服务发出一些 HTTP 请求,我想测试它是否使它们以正确的方式。
在它的依赖项中,它还有一个EnvironmentService
根据环境返回正确的 API 端点,我用 Jasmine 模拟过。
我的测试如下所示:
这是我的ShipmentsService
方法:
我错过了什么?
angular - Angular 单元测试 - 在 HttpInterceptor 中测试 retryWhen
我正在尝试在 http 拦截器中测试 retryWhen 运算符,但是在尝试多次重复我的服务调用时出现错误:
“错误:需要一个对条件“匹配 URL:http://someurl/tesdata ”的匹配请求,但没有找到。”
所以我有2个问题。首先,我是否要以正确的方式进行测试,其次,为什么我不能在没有匹配错误的情况下发出多个服务请求?
我的拦截器工作正常,并且正在使用 rxjs retryWhen 运算符,例如:
我的测试服务:
我的规格:
angular - 如何在 Angular 中测试 http 请求参数?
我正在尝试在发出 http 请求时测试 http 参数是否正确。
当我做expect(req.request.params.get('action')).toEqual('pause');
测试失败时:
预期:“暂停”收到:空
服务
测试
任何想法为什么会发生这种情况?
我在这个测试中使用 Angular 和 Jest 和 TestBed。
angular - 测试 http 错误作为响应时,Jasmine 单元测试请求不会刷新
我正在尝试使用 HttpTestingController 刷新带有 http 400 错误的响应。然而,它似乎永远不会被刷新,因为订阅的委托永远不会被调用。
记录请求对象的 _cancelled 属性表明返回 400 的 http 错误导致 _cancelled 属性设置为 true。我希望将错误响应传递给服务方法,以便可以测试它对 http 错误代码的处理。
考试:
正在测试的服务中的功能:
angular - 如何在 Angular 的管道中测试多个请求?
我想测试在管道内完成的 3 个请求。简化示例:
我正在使用官方推荐: HttpTestingController。如果我一个接一个地用httpTestingController.match
. 但是,这不是我真正的应用程序的编写方式。它正在使用管道。
如何使 httpTestingController.match 在管道内处理多个 HTTP 请求?
这是我迄今为止尝试过的,这里是可重现的例子:
https://stackblitz.com/edit/angular-http-testing2?file=src%2Ftesting%2Fhttp-client.spec.ts
angular - 使用 Bootstrap 指令时,HttpTestingController expectOne 不起作用
当我模仿对 Bootstrap 指令生成的元素的单击时,我无法在单元测试中模拟 HTTP 请求。
在这里,我有一个带有分页链接的组件。
而且我还进行了测试以验证 HTTP 调用。测试总是失败。
当我直接使用由指令生成的 HTML 时,一切都很好。
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
是令人感兴趣的。