问题标签 [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 回答
1706 浏览

angularjs - 带有查询参数的单元测试 $httpBackend

使用$httpBackend,如何expectGET与具有查询参数的 url 一起使用?顺序无关紧要,价值也无关紧要。

使用$resource这是我声明它的方式:

0 投票
1 回答
371 浏览

angularjs - 使用 $httpBackend 测试 $resource 的 PUT/POST 方法时出错

我在尝试测试使用 $resource 设置的服务时遇到问题,该服务具有各种方法 GET、PUT、POST。

我在测试中使用 $httpBackend,它在测试 GET 请求时工作正常,但在 PUT/POST 上失败 - 我认为这可能是因为它首先发送了一个 OPTIONS 请求。

奇怪的是,如果我将工厂更改为使用 $http.post() 而不是使用 $resource,则测试可以正常通过。

有谁知道解决这个问题的方法?我可以关闭 OPTIONS 请求吗?或者其他的东西...?

谢谢!

服务

ApiConfig.urlBase 在测试中解析为http://localhost:8080/ ...

测试文件

0 投票
2 回答
325 浏览

jquery - 该站点正在运行哪个 SQL 查询?

我公司的网站(内部网站或外部网站 - 有时是门户网站)返回某些结果(通过后端系统中的 SQL 查询/命令获得)。我试图找出哪些查询正在后台运行,以及如何将查询结果追踪到它们来自的表中。我怎样才能做到这一点?我尝试查看“源”但没有发现任何查询那里。如果这很重要,后端使用 SQL Server。

0 投票
1 回答
37 浏览

angularjs - 业力:对请求进行模块化测试的麻烦

这是我正在测试的控制器:

我的测试:

它目前失败:

在此处输入图像描述

它希望我$httpBackend.expectGET('/users')在我的第二个it街区有一个。我不想那样做。it对我来说,如果每个块测试一个单独的东西,它似乎更加模块化和有组织。


1)我该怎么办?

2)为什么我会收到$digest already in progress错误消息?

0 投票
1 回答
1331 浏览

angularjs - $httpBackend.expect() 应该去哪里?

以下测试通过:

admin.controller.js

admin.controller.spec.js

我没想到会这样。这是我期望发生的事情:

  1. 控制器在beforeEach.
  2. User.list()运行。
  3. $http尚未被 覆盖,因此$httpBackend请求正常发出。
  4. $httpBackend.expectGET('/users').respond('foo')预计GET /users。并说,“如果我收到那个请求,我会用 'foo' 回应”。
  5. $httpBackend.flush()说“为收到的任何请求发送定义的响应$httpBackend。”
  6. .expectGET失败是因为它没有收到它的请求(请求发生在预期之前)。
  7. .flush()抛出一个错误,因为没有什么要刷新的。

我没有得到我期望的结果,所以我上面的逻辑一定是错误的——它是什么?

0 投票
1 回答
383 浏览

angularjs - Angular 应用程序在严格模式下的 httpBackend 显式注释

我正在使用 Protractor 的addMockModule功能来模拟一些请求数据,但是在目标 Angular 应用程序处于严格模式时遇到问题。

这是错误:

这是代码:

有没有办法在 Angular 的上下文中显式注入 $httpBackend ?

0 投票
3 回答
14712 浏览

angularjs - $httpBackend 带有查询参数的请求

我收到以下错误

对于 expectGET 我有以下内容,这会创建动态查询字符串。主要是“开始”参数和 whenGET 部分,我试图根据“开始”提供动态内容

$httpBackend.expectGET('/restpath/api/v1/books?limit=10&start=1'); // the actual service goes here , which does the $http service. we don't care $httpBackend.flush();

0 投票
2 回答
231 浏览

javascript - $httpBackend jsonp:没有待刷新的请求

单击按钮时,我会进行 jsonp 调用。

测试:

但我不断收到No pending requests to flush failure

在 JSONP 调用的情况下,我们需要做些什么不同的事情。在其他任何地方,这种格式都有效。

PS:是的,我打电话(很多问题,人们实际上是在打电话或触发触发事件的动作)。至少,我看到代码到达了我在代码中提出请求的那一行。

0 投票
2 回答
31 浏览

angularjs - 当我使用配置构建 URL 时,如何测试我的 HTTP 调用?

在我的项目中,我构建了一些 HTTP 请求,如下所示:

这意味着最终的 HTTP 调用看起来像my/service?foo=bar&hello=worldVar

我该如何设置我$httpBackend的帐户?

我看到的问题是:

  1. 我不能保证这种风格的参数顺序,这意味着设置第一个参数expectGet会很困难。
  2. 当我真的不关心参数时,很难测试调用
0 投票
0 回答
268 浏览

javascript - 在 karma 中使用 AngularJS $http 测试链式 Promise

我试图在 $http 调用之后在 Promise 中返回一个 Promise,但它在 karma/jasmine 测试用例中永远不会得到解决。

这是代码:

当然,测试用例通过了,但第二个 Promise 从未解决。如果我waitsFor用来检查是否p已解决,业力会显示超时错误。

由于它可以使用简单的Promise.resolve('foo')(见上文),问题似乎是$httpBackend.flush()只刷新第一个承诺,而不是返回的第二个承诺。

随机$rootScope.$apply()也没有解决问题。我也尝试过初始化beforeEach(module('myModule')),但由于未使用该模块,我还是看不到重点。我错过了什么?