问题标签 [httpbackend]
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.
angularjs - 使用 httpBackend 进行 Jasmine 测试未返回预期结果
我的 $resource-wrapping 服务有一个非常简单的单元测试。我已经模拟并设置了 httpBackend 以返回包含七个项目的数组。当我运行测试时,它报告返回了 4 个项目,而不是 7 个:
函数 (a1, a2, a3, a4) { ... }
预计 4 为 7。
以下是我的服务和规格
=== 服务 ===
=== 规格 ===
});
angularjs - 如何测试angularJs http请求jsonp
因此,我在尝试创建一些单元测试的同时尝试遵循本教程。
好吧,我一直在尝试测试对 ergast 开发人员 api 的 $http 请求。正如您在教程中看到的,$http 请求是向服务ergastAPIservice 发出的
然后在控制器中使用它:
我将如何测试这个(服务)。我已经开始了这样的事情:
就像我说的卡住了,让它工作,我认为你在响应中所做的应该是你在测试中所期望的,它与实际模拟的 $http 请求没有任何关系......或者我我弄错了
任何提示和/或指出我正确的方向将不胜感激,
干杯!
angularjs - Angular + Karma + Jasmine - 带有假后端的测试和应用程序
我正在开发一个有角度的 WebApp,由于后端还没有准备好,我正在使用一个假后端 ( $httpBackend
) 来测试我的 REST 请求。
它在 app.js 中是这样定义的:
当我运行应用程序时它可以正常工作grunt serve
当我尝试运行我写的测试(在 Jasmine 中并通过 Karma 执行)时,问题就开始了,这里是一个示例测试:
如果我从 app.js 中删除虚假的后端配置,它们会完美运行,而不是将其留在那里 Karma 报告:Error: No pending request to flush !
我认为这是因为 app.js 中声明的拦截器被触发并阻止在请求中触发测试中定义的 $httpBackend。
关于如何解决这个问题的任何想法?
提前致谢
angularjs - AngularJS 单元测试。HttpBackend
我有包含单元测试的 AngularJS 应用程序。我在检查用户身份验证的应用程序的 .run 部分中又添加了一个 http 请求。现在大约 60% 的测试失败了,因为他们发现了“意外的 http 请求”。甚至指令测试也失败了。如何避免在测试中运行此请求?如何在所有测试中轻松模拟此请求?我尽量不去参加httpBackend.expect('GET', 'URL')
每一项测试——那是太多的工作。
使用 Jasmine + Karma 进行测试
谢谢。如果需要,我可以提供更多详细信息。
ajax - 记录所有通过 $httpBackend 的 AJAX 请求
如何记录所有通过的请求$httpBackend
?我知道如何用 给出模拟响应.respond()
,如何让请求通过.passThrough()
,但我怎样才能只拦截请求以记录它然后让它通过?
angularjs - 使用角度 httpbackend 对递归 http 请求进行单元测试
我正在使用他们的 jasmine 和 karma 设置对我的 AngularJS 应用程序进行单元测试。我一直在使用 AngularJS 模拟$httpbackend
:
https://docs.angularjs.org/api/ngMock/service/$httpBackend
我遇到的问题是测试以下模块:
我总是对服务器有一个待处理的 http 请求;一旦服务器响应,发送另一个 http 请求。正因为如此,即使我的模拟 httpbackend 期待请求,一旦它响应,我不知道如何避免错误:
错误:意外请求:GET url
没有更多请求
有没有办法让我忽略这个特定请求的这个错误?还是模拟 httpbackend 期望对该 url 的无限请求的一种方式?
angularjs - 在 AngularJS 应用程序中运行 Karma 单元测试时出现“意外请求”错误
我正在尝试为使用 $http 服务获取文章详细信息的控制器编写单元测试。
控制器:
单元测试:
但我不断收到以下错误:
这是我第一次编写单元测试,随后我阅读了一些教程。我不知道我做错了什么?
angularjs - 使用 Karma-Jasmine 测试 Angular 控制器时出现 $httpbackend 问题
我将代码放在小提琴中,以便在需要时可以轻松更新和“使用”。
其余的,因为它非常冗长,在小提琴中:http: //jsfiddle.net/tLte2/
基本上第一个测试通过了,不是很难,但第二个测试依赖于 JSON 存根并给出如下错误: PhantomJS 1.9.7 (Mac OS X) PlayersListCtrl PlayersListCtrl 应该获取身份验证令牌 FAILED Error: No pending request to flush !
似乎无法掌握这种 $httpBackend
僵硬的工作原理。是否必须可以触发它并将结果设置在控制器的范围内?
--edit 基本上把所有东西都完美地连接起来,可以做一些运行良好的简单测试,但是在那里获取 JSON 存根数据似乎很痛苦。解决方法可以只是在控制器范围内定义 JSON 中描述的数组,例如:controller.players = ['one','two','three',..... etc ......]
但这感觉不对。那$httpBackend
东西应该不难修复吧?
angularjs - whenDELETE : undefined 不是函数
这是我正在做的事情:
controller.js
controllerspec.js
我明白了TypeError: Undefined is not a function at line "HERE"
。
我错过了什么?
angularjs-directive - 单元测试:指令内控制器中的http调用
现在,我有以下情况:
- 如果我
httpBackend.flush()
在 block 的开头注释掉it
,isolateScope 是undefined
. - 如果我在block
httpBackend.flush()
的末尾注释掉,这表明没有按预期正确执行(httpBackend.flush 在 http 调用之后永远不会被调用)。it
isolateScope.uploadResult.length = 0
httpPOST
3.如果我保留两者httpBackend.flush()
(不应该这样做),我会得到预期的错误:Error: No pending request to flush !
。
谁能指导我?我是业力的新手。
提前致谢。