我正在尝试使用$httpBackend测试我的AngularJS应用程序。但是,它一直告诉我我没有待处理的请求。

这是测试:

it('should attempt to get boards from server', function() {
    httpBackend.when('GET', rootScope.serverRoot + '/boards').respond({id: 1});

    var boards;
    BoardServiceInstance.getBoards().then(function(data) {
        boards = data;
    });

    httpBackend.flush();

})


和服务:

this.getBoards = function() {
    return $http.get($rootScope.serverRoot + '/boards');
}


我究竟做错了什么?

最佳答案

添加$rootScope.$digest();就可以了。

这是最终代码:

it('should attempt to get boards from server', function() {
    $httpBackend.when('GET', '/boards').respond({id: 1});

    var boards;
    mockBoardService.getBoards().then(function(data) {
        boards = data;
    });

    $rootScope.$digest();

    $httpBackend.flush();

})

09-16 01:36