Жасмин - фиктивный spyOn.and.callFake Ошибка успеха http

0

в моем контроллере у меня есть вызов службы http. Это мой контроллер:

myApp.controller('MyController', function MyController($scope, myData) {
  myData.getItemsByPage(1, 10)
    .success(function (data, status, headers, config) {
        $scope.items = data.items;
    })
    .error(function (data, status, headers, config) {
        var test = 1;
    });
});

Это тест Жасмин:

it('it should return results', function () {
  var results = {
    "items": [
        {"Title": "Star Wars1","Year": "1977"},
        {"Title": "Star Wars2","Year": "1980"},
        {"Title": "Star Wars3","Year": "1983"}]
  };

  spyOn(myData, 'getItemsByPage').and.callFake(function (message, success, fail) {
        return {
            success: function (successCallback) {
                var status = {};
                var headers = function() {
                    return {
                        'x-pagination': '{"totalCount": 3}'
                    }
                };
                var config = {};

                successCallback(results, status, headers, config);
            },
            error: function (fail) {
                var x = 1;
            }
        }
    });
    $rootScope.$apply();
    $controller('MyController', { $scope: $scope });
});

Я получаю исключение "TypeError: Невозможно получить ошибку свойства" неопределенной или нулевой ссылки "

  • 0
    Я получаю ту же ошибку. Не знаю, как решить .. ???
Теги:
jasmine

1 ответ

0

по какой-то причине вам нужно вернуть объект ошибки после вызова метода успеха.

spyOn(myData, 'getItemsByPage').and.callFake(function (message, success, fail) 
{
    return {
        success: function (successCallback) {
            var status = {};
            var headers = function() {
                return {
                    'x-pagination': '{"totalCount": 3}'
                }
            };
            var config = {};

            successCallback(results, status, headers, config);

            return {
                error: function (errorCallback) {
                    var x = 1;
                }
           }
        },
        error: function (fail) {
            var x = 1;
        }
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню