Функциональный вызов из файла 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
, но этого также не происходит.