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

angularjs - httpBackend 刷新后获取 http 结果

我有一个测试服务的测试用例,并成功检查了我的测试用例中是否调用了 get 请求:

现在我希望结果变量具有服务的响应,以便我可以检查响应代码是 200。但是当我完成 httpBackend 刷新之后,我无法在成功 callBack 执行后获得结果,而是成功给了我一个承诺。如何从我的 Entry.getEntry 服务调用中获取结果?以下是我的服务方法:

谢谢你的帮助。

0 投票
1 回答
93 浏览

angularjs - 角度单元测试建议

我是使用 Angular 进行单元测试的新手,即使开始测试我也遇到了很多麻烦。我有一个控制器,它调用一个服务,该服务调用一个远程 api 来获取货币列表,然后用符号属性扩充返回的对象并将其分配给范围变量。

我一直在看很多 httpBackend 教程,但这些部分并不适合。我知道我必须使用 whenGet 和 expectGet 但仍然不明白它们是什么以及何时应该使用它们,甚至不知道我应该测试什么——请求、响应?它们应该在 it 函数的 beforeEach 函数中吗?

控制器:

我已经从另一个教程中复制了下面的大部分测试,但它仍然失败并显示“错误:没有待处理的刷新请求”

考试:

任何帮助将不胜感激

0 投票
1 回答
2330 浏览

angularjs - AngularJS $http 模拟响应(...):如何在响应中模拟“位置”标头?

我有一个 API 响应没有数据的状态 202,但响应有一个指向 URL 的标头“位置”。

我查看了 $httpBackend respond(...) 文档,没有提到如何在响应中模拟标头。

我猜测它可能是这样的:

在我的单元测试中,我得到了预期的状态 202,但 headers('location') 返回未定义。

建议?

0 投票
1 回答
3149 浏览

angularjs - 错误:在服务中使用 Restangular 的 Karma 不再需要请求

我有一个 AngularJS 服务,服务名称是 User。我用它来进行身份验证。在这个服务中,我有一个 authenticate() 函数,它使用 Restangular 对我们的 API 进行 REST 调用。它在我的 Angular 应用程序中完美运行。我刚开始使用业力,所以我可以包括测试。我想知道为什么我会收到这个错误。此外,我阅读了一些 stackoverflow 帖子并注意到他们直接在他们的规范文件中使用 $httpBackend。不幸的是,它与我的设置不同。

这是我的 main.js,Karma 规范文件

0 投票
1 回答
262 浏览

jquery - $httpBackend 不模拟 $.ajax(...) 调用

尝试使用 $httpBackend 为 $.ajax 调用创建模拟。

下面的模拟片段可以正常工作$http.get('/phones')

但是当尝试使用相同的

这引发了 '/phones' ajax 调用的 404 错误。

Jsfiddler 链接在这里

0 投票
0 回答
970 浏览

javascript - $httpBackend.verifyNoOutstandingExpectation is useless?

I noticed strange thing while trying to unit test one of my controllers with karma. Here is spec:

and this is my controller:

Category dependency above is $resource.

So when I comment the line in controller which performs POST request (category.$save())

I get this error from karma: Error: Unsatisfied requests: POST /api/categories

which I find strange because $httpBackend provides method for this kind of assertions, namely $httpBackend.verifyNoOutstandingExpectation right? it's described here in angular docs it's said

Verifies that all of the requests defined via the expect api were made. If any of the requests were not made, verifyNoOutstandingExpectation throws an exception.

I see everybody using it, so I also used to put it in afterEach but now I don't see the point in it anymore since karma throws error anyway if expected request wasn't made and spec fails.

So is it method useless, or it's something I don't understand?

If I haven't made it clear, I didn't call verifyNoOutstandingExpectation and error happens nevertheless.

0 投票
1 回答
1356 浏览

angularjs - $HttpBackend (AngularJS) 的意外请求错误

我正在使用 HttpBackend 来模拟我的 Angular 应用程序正在进行的一些调用的一些 Http 响应。

但是,我在运行测试时收到错误“意外请求:[object Object] undefined”

我知道通常此错误意味着您丢失或输入了应用程序发出的 $http 请求之一,因此无法找到响应。但是我的错误并不像其他通常说的“意外请求:GET api/call”那样具体,所以我不知道出了什么问题。

以前有没有人遇到过这个特定的错误?

示例代码

角度控制器:

茉莉花测试:

0 投票
1 回答
936 浏览

angularjs - AngularJs 控制器测试:意外请求:GET

我正在尝试通过使用 karma-jasmine 和 httpBackend 模拟服务层来编写我的第一个控制器测试。但我收到了这个错误。

错误:意外请求:GET./webresources/campaign/getCampaignDetails/undefined 预期 GET ./webresources/campaign/getCampaignDetails/CMP1000004568

在此先感谢您的帮助:)

服务:

控制器:

控制器规格:

输出:

0 投票
1 回答
1286 浏览

angularjs - Protractor 中 httpBackend API 模拟模块中的打印请求

我在量角器中使用角度服务 $httpBackend 针对模拟 API 运行我的 e2e 测试。

我已经有了 selenium 浏览器的调试日志:

我想在我的 httpBackend 模块中打印每个请求的URL标头(例如,用于用户资源):

但是 httpBackend 模块内的任何地方都没有记录任何内容。当我在我的应用程序中使用它时它工作正常,但当我将它与量角器一起使用时它就不行了。

有什么办法可以在任何地方打印吗?即使在输出文本文件中?

0 投票
1 回答
356 浏览

angularjs - 使用 $httpBackend expectGET 时使用哪个 URL

当期望调用 API 时,我应该包含包含所有参数的整个 URL,还是只需要部分匹配?

我是否应该收听对确切 URL 的调用:

http://address.of.api/stuff/123?include=thing,anotherthing.name;

还是我只需要这个:

/stuff/123