首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS $httpBackend expectGET不工作

AngularJS $httpBackend expectGET不工作
EN

Stack Overflow用户
提问于 2014-03-18 00:02:58
回答 1查看 2.8K关注 0票数 0

我正在为一个QUnit工厂编写AngularJS测试。这是工厂的代码:

代码语言:javascript
复制
var app = angular.module('App', []);
app.factory('$groupFactory', function($rootScope, $http) {
    return {
        'getAll': function(_callback) {
            $http.get("get/values/from/server", {
                headers: {
                    'Content-type': 'application/json'
                }
            }).success(function(data, status, headers, config) {
                _callback(data);
            }).
            error(function(data, status, headers, config) {
                _callback(data);
            });
        },
    }
});

还请参阅下面的Qunit测试用例。test-1从$httpBackend获得http响应,但在test-2中,它不工作。

代码语言:javascript
复制
var $scope,
    $rootScope,
    $http,
    $httpBackend,
    $groupFactory,
    injector = angular.injector(['ng', 'App', 'ngMockE2E']),
    init;
init = {
    setup: function() {
        $rootScope = injector.get('$rootScope').$new();
        $groupFactory = injector.get('$groupFactory');
        $httpBackend = injector.get('$httpBackend');
        $httpBackend
            .when('GET', "get/values/from/server")
            .respond({'response': 'success'});
    }
};

module('$groupFactory', init);

// test-1
test("getAll", function() {
    expect(1);
    $groupFactory.getAll(function(data) {
        equal(data.response, 'success', "success casse");
        start();
    });
    stop();
});

// test-2
test("getAll", function() {
    expect(1);
    $httpBackend.expectGET("get/values/from/server").respond(404, {
        response: 'failure'
    });
    $groupFactory.getAll(function(data) {
        equal(data.response, 'failure', "failure casse");
        start();
    });
    stop();
});

知道它为什么不起作用吗?

这是一个基于jsFiddle的演示

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 19:49:33

$httpBackend.flush()之后调用stop()将有效:

代码语言:javascript
复制
stop();
$httpBackend.flush();

这是更新演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22467881

复制
相关文章

相似问题

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