首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角httpBackend崩溃浏览器

角httpBackend崩溃浏览器
EN

Stack Overflow用户
提问于 2016-07-27 16:42:22
回答 1查看 77关注 0票数 0

当使用Jasmine和角(1.4.7)与Restangular (1.4.0),httpBackend和角模拟(1.4.7)时,Chrome和PhantomJS都会在遇到以下行时崩溃:

代码语言:javascript
复制
httpBackend.whenGET('/something').respond(200);

如果我完全消除了它,如下所示,我会得到以下错误:

代码语言:javascript
复制
//httpBackend.whenGET('/something').respond(200);
scope.doSomething();  // will invoke a GET to /keepAlive
httpBackend.expectGET("/something").respond(200);
httpBackend.flush();

错误:意外请求:获取/something不再需要请求

它正在测试的代码是:

代码语言:javascript
复制
$scope.doSomething = function () {
    Restangular.one('something').get();
};

我已经试过了我能想到的一切。我的想法是,这只是卡玛/茉莉花/雷斯顿的一个bug,但我不知道如何解决这个问题。

值得注意的一件事是,httpBackend和赖斯特尔在网址问题上意见不一。将/添加到/something中。httpBackend没有,这就是他们不匹配的原因。

我尝试过的那些没用的东西:

  • 从莱斯顿打电话给/something。说意外的GET //东西(两个斜杠)
  • 使用/某某/另一个目录,而不是一个根级目录。无差别.
  • 使用$http代替Restangular。无差别.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-21 18:21:40

一段时间前解决了这个问题。发生的情况是,$httpBackend测试导致了路由的改变。那条路线的改变引起了一场事件的爆发,使我们陷入了困境。

但是,只有在用$httpBackend进行测试时才会发生这种情况。在现实世界中,这种无限循环并没有发生。

有两种解决办法:

  1. 在您的$location.go ()中重新定义beforeEach,这样您的测试实际上不会导致重定向-or -
  2. 以某种方式捕获事件并压缩它,或者只是更改代码以避免触发它。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38618791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档