Rest-Api Вызов функции вызывает ошибку тайм-аута - PullRequest
0 голосов
/ 11 октября 2019

Функциональный вызов из файла spec.js должен вызывать rest-api-Call, но он не работает правильно. Rest-Api-Call проверяется библиотекой angularjs-mocks, но мне нужно сделать реальный вызов и получить некоторые данные из бэкэнда.

Я пытался выполнить любые вызовы с помощью службы $httpBackend, но это не работает. Ниже приведена ошибка, которую я получаю:

Error: Timeout - Async function did not complete within 5000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)

Я проходил это Учебное пособие , чтобы сделать конкретный асинхронный вызов Backend, но это вызывает только ошибки от jasmine.

Вот два фрагмента кода:

Тестовый случай

describe('App-Start', function () {

beforeEach(module('app'));

describe('ProjectOverview', function () {

    //beforeEach(angular.mock.http.init);
    //afterEach(angular.mock.http.reset);

    var $controller, $rootScope, $httpBackend;
    beforeEach(inject(function (_$controller_, _$rootScope_, _$httpBackend_) {
        $controller = _$controller_;
        $rootScope = _$rootScope_;
        $httpBackend = _$httpBackend_;
    }));

    it('get some Projects', function () {

        $httpBackend.whenGET(/^\w+.*/).passThrough();
        $httpBackend.whenPOST(/^\w+.*/).passThrough();

        var $scope = $rootScope.$new();
        $controller('projectsWelcomeCtrl', { $scope: $scope });

        return $scope.onRefreshData().then(function () {
            console.log($scope.projects);
            expect(true).toBe(true);
        });
    });

});
});

Вызов функции

$scope.onRefreshData = getProjects;

function getProjects() {     
    return userProjects.load($scope.filters, $scope.sortSettings)
        .then(function (projectInfos) {
            $scope.projects = projectInfos.projects;                
        })
        .catch(function (error) {
            if (error.status !== 401) {
                errorHandling.catchHandler('Error while loading project list')(error);
            }
        });
}

userProjects.load не выполняет вызов бэкэнда.

Я ожидал некоторых данных в $scope.projects, но он пуст, потому что API-Звонок не делает HTTP-запрос. Или будет выполнена ветка catch, но этого также не происходит.

...