Как мне проверить сервис AngularJS с помощью Jasmine?
(Здесь есть связанный вопрос:Тест Жасмин не видит модуль AngularJS)
Я просто хочу протестировать сервис без начальной загрузки Angular.
Я посмотрел на некоторые примеры и учебник, но я никуда не пойду.
У меня всего три файла:
myService.js: где я определяю сервис AngularJS
test_myService.js: где я определяю тест Жасмин для сервиса.
specRunner.html: файл HTML с обычной конфигурацией жасмина, куда я импортирую два предыдущих файла, а также Jasmine, Angularjs и angular-mocks.js.
Это код службы (который работает, как и ожидалось, когда я не тестирую):
var myModule = angular.module('myModule', []);
myModule.factory('myService', function(){
var serviceImplementation = {};
serviceImplementation.one = 1;
serviceImplementation.two = 2;
serviceImplementation.three = 3;
return serviceImplementation
});
Поскольку я пытаюсь протестировать сервис изолированно, я должен иметь возможность получить к нему доступ и проверить его методы. Мой вопрос: как я могу внедрить службу в моем тесте, не загружая AngularJS?
Например, как я могу проверить значение, возвращаемое для метода службы с помощью Jasmine следующим образом:
describe('myService test', function(){
describe('when I call myService.one', function(){
it('returns 1', function(){
myModule = angular.module('myModule');
//something is missing here..
expect( myService.one ).toEqual(1);
})
})
});