Я пытаюсь создать базовое тестовое покрытие созданной мной службы. Вот моя служба:Мой макет не возвращает никаких данных - Angularjs
App.factory('encounterService', function ($resource, $rootScope) {
return {
encounters: [],
encountersTotalCount: 0,
encountersIndex: 0,
resource: $resource('/encounters/:encounterId', {encounterId:'@encounterId'}, {
search: {
method: 'GET',
headers: {
'RemoteUser': 'jjjyyy',
'Content-Type': 'application/json'
}
}
}),
getMoreEncounters: function() {
var that = this;
that.resource.search({}, function(data) {
that.encountersTotalCount = data.metadata.totalCount;
_.each(data.encounters, function(encounter) {
that.encounters.push(encounter);
});
that.busy = false;
that.offset += 10;
$rootScope.$broadcast('encountersFetched');
});
}
};
});
Это мой тест:
describe('encounterService', function() {
var _encounterService, httpBackend;
beforeEach(inject(function(encounterService, $httpBackend) {
_encounterService = encounterService;
httpBackend = $httpBackend;
var url = 'encounters';
httpBackend.when('GET', url).respond([{}, {}, {}]);
}));
afterEach(function() {
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
it('should return a list of encounters', function() {
_encounterService.getMoreEncounters();
httpBackend.flush();
expect(_encounterService.encounters.size).toBe(3);
});
});
Мой тест работает, и моя служба звонит getMoreEncounters()
. Внутри encounterService
я должен установить некоторые метаданные и присвоить свои данные внутренней переменной. Это никогда не происходит. Вы можете увидеть ответ в тесте, но результаты не привязаны ни к чему. В чем проблема с моим кодом?
Работает ли 'столкновение' вне вашего теста? Просто взглянув на этот код, он не выглядит так, как будто он должен работать вообще ... – tennisgent
Да, он отлично работает. – jhamm
Действительно? Я вижу пару вещей, которые, как я полагаю, должны вызывать ошибки JavaScript. 'ожидать (_encounterService.encounters.size) .toBe (3);' является одним из них. Массивы Javascript не имеют свойства '.size'. его '.length' ... – tennisgent