问题标签 [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.

0 投票
1 回答
1923 浏览

angularjs - 使用 httpBackend 进行 Jasmine 测试未返回预期结果

我的 $resource-wrapping 服务有一个非常简单的单元测试。我已经模拟并设置了 httpBackend 以返回包含七个项目的数组。当我运行测试时,它报告返回了 4 个项目,而不是 7 个:

函数 (a1, a2, a3, a4) { ... }

预计 4 为 7。

以下是我的服务和规格

=== 服务 ===

=== 规格 ===

});

0 投票
0 回答
642 浏览

angularjs - 如何测试angularJs http请求jsonp

因此,我在尝试创建一些单元测试的同时尝试遵循本教程。

好吧,我一直在尝试测试对 ergast 开发人员 api 的 $http 请求。正如您在教程中看到的,$http 请求是向服务ergastAPIservice 发出的


然后在控制器中使用它:


我将如何测试这个(服务)。我已经开始了这样的事情:



就像我说的卡住了,让它工作,我认为你在响应中所做的应该是你在测试中所期望的,它与实际模拟的 $http 请求没有任何关系......或者我我弄错了

任何提示和/或指出我正确的方向将不胜感激,

干杯!

0 投票
2 回答
1044 浏览

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。

关于如何解决这个问题的任何想法?

提前致谢

0 投票
2 回答
1277 浏览

angularjs - AngularJS 单元测试。HttpBackend

我有包含单元测试的 AngularJS 应用程序。我在检查用户身份验证的应用程序的 .run 部分中又添加了一个 http 请求。现在大约 60% 的测试失败了,因为他们发现了“意外的 http 请求”。甚至指令测试也失败了。如何避免在测试中运行此请求?如何在所有测试中轻松模拟此请求?我尽量不去参加httpBackend.expect('GET', 'URL')每一项测试——那是太多的工作。

使用 Jasmine + Karma 进行测试

谢谢。如果需要,我可以提供更多详细信息。

0 投票
0 回答
492 浏览

ajax - 记录所有通过 $httpBackend 的 AJAX 请求

如何记录所有通过的请求$httpBackend?我知道如何用 给出模拟响应.respond(),如何让请求通过.passThrough(),但我怎样才能只拦截请求以记录它然后让它通过?

0 投票
2 回答
921 浏览

angularjs - 使用角度 httpbackend 对递归 http 请求进行单元测试

我正在使用他们的 jasmine 和 karma 设置对我的 AngularJS 应用程序进行单元测试。我一直在使用 AngularJS 模拟$httpbackend

https://docs.angularjs.org/api/ngMock/service/$httpBackend

我遇到的问题是测试以下模块:

我总是对服务器有一个待处理的 http 请求;一旦服务器响应,发送另一个 http 请求。正因为如此,即使我的模拟 httpbackend 期待请求,一旦它响应,我不知道如何避免错误:

错误:意外请求:GET url
没有更多请求

有没有办法让我忽略这个特定请求的这个错误?还是模拟 httpbackend 期望对该 url 的无限请求的一种方式?

0 投票
1 回答
3672 浏览

angularjs - 在 AngularJS 应用程序中运行 Karma 单元测试时出现“意外请求”错误

我正在尝试为使用 $http 服务获取文章详细信息的控制器编写单元测试。

控制器:

单元测试:

但我不断收到以下错误:

这是我第一次编写单元测试,随后我阅读了一些教程。我不知道我做错了什么?

0 投票
0 回答
319 浏览

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东西应该不难修复吧?

0 投票
1 回答
1004 浏览

angularjs - whenDELETE : undefined 不是函数

这是我正在做的事情:

controller.js

controllerspec.js

我明白了TypeError: Undefined is not a function at line "HERE"

我错过了什么?

0 投票
1 回答
620 浏览

angularjs-directive - 单元测试:指令内控制器中的http调用

现在,我有以下情况:

  1. 如果我httpBackend.flush()在 block 的开头注释掉it,isolateScope 是undefined.
  2. 如果我在blockhttpBackend.flush()的末尾注释掉,这表明没有按预期正确执行(httpBackend.flush 在 http 调用之后永远不会被调用)。itisolateScope.uploadResult.length = 0httpPOST

3.如果我保留两者httpBackend.flush()(不应该这样做),我会得到预期的错误:Error: No pending request to flush !

谁能指导我?我是业力的新手。

提前致谢。