Я пытаюсь написать модульные тесты для углового обслуживания с жасмином/кармой. У меня есть аналогичный сервисный тест, который работает отлично. Но у этого есть некоторые дополнительные зависимости, он находится в другом модуле и просто не находит службу с помощью инъекции.Единичное тестирование углового обслуживания, beforeEach инъекции не выполняется
Служба выглядит примерно так. bService
находится в том же модуле, но commonFactory
и commonService
находятся в другом модуле, скажем commonModule
.
(function() {
'use strict';
angular
.module('myService')
.service('aService', aService);
aService.$inject = [
'commonFactory',
'commonService'
'bService'
];
function aService (
commonFactory,
commonService,
bService
) {
};
return {
codeIWantToTest: CodeIWantToTest;
}
function CodeIWantToTest() {
console.log('surprise!');
}
})();
Мой тест жасмин выглядит следующим образом:
describe('myService.aService', function() {
'use strict';
var aService;
// I tried adding beforeEach(module('commonModule')); too, but that didn't do anything
beforeEach(module('myService'));
beforeEach(function() {
inject(function(_aService_) {
console.log('getting aService');
aService = _aService_;
});
});
it('tests my service is defined', function() {
expect(myService).toBeDefined();
});
});
Этот тест не удается. myService
не определен и console.log
в функции впрыска не срабатывает. Мой karma.conf.js
в основном перечисляет зависимости в том порядке, в котором они были введены в службу, а затем добавляет службу, затем тест.
Что может вызвать инъекцию, чтобы не воспользоваться услугой? Что мне не хватает? Я упомянул, что у меня есть аналогичный тест для commonService
, и он отлично работает. Поэтому я озадачен.
Обычно вы не тестируете службы, а результат обслуживания в контроллере. –
Отредактированный код, добавлен отсутствующий '' 'на' bService'. В случае, если это не проблема, просто от копирования до SO. – ste2425
отсутствует '' 'в конце' aService = _aService_'. – shelbydz