首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用and和httpBackend进行角度测试

用and和httpBackend进行角度测试
EN

Stack Overflow用户
提问于 2014-02-09 00:09:41
回答 2查看 374关注 0票数 0

我一整天都在和蜜蜂搏斗。这是我的测试

代码语言:javascript
复制
injector = angular.injector(['ngMock','ng', 'cockpit']);
var equal = QUnit.assert.equal;
test('loginService', function () {
    var app, service, scope, httpBackend;
    app = angular.module('cockpit');
    app.config(function ($provide) {
       $provide.decorator('httpBackend',
           angular.mock.e2e.$httpBackendDecorator);
    });
    httpBackend = injector.get('$httpBackend');

    httpBackend.when("PUT", "/login").respond({ userId: 23 });

    service = injector.get('loginService');
    service.$http = httpBackend;

    service.getUserId('easy', 'path');
    httpBackend.flush();
    equal(service.userId, 23, 'populates userId property');
});

在getUserId方法中,$http服务没有put方法,所以当我进行$http.put调用时,它会失败。我一定是把测试设错了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-16 17:21:59

我没有看到角模拟中的$httpBackend是$httpBackend本身的包装器。您只需实例化它并设置它,以便以您想要的方式拦截$http调用。尽管如此,我仍然无法让$httpBackend.flush()工作。角度测试并不像宣传的那么简单。

票数 2
EN

Stack Overflow用户

发布于 2014-02-14 21:28:51

$http$httpBackend是两种不同的服务。$http使用$httpBackend$http是具有put()方法的服务。

因此,下面这一行没有意义:

代码语言:javascript
复制
service.$http = httpBackend;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21653440

复制
相关文章

相似问题

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