У меня есть директива, которая потребляет услугу:Юнит Угловая директива, которая потребляет услуги
angular.module('app', [])
.service('myService', function() {
return {
getCustomer: function(){
return {
name: 'Naomi',
address: '1600 Amphitheatre'
};
}
};
})
.directive('myCustomer', function(myService) {
return {
link: function(scope){
scope.customer = myService.getCustomer();
},
template: 'Name: {{customer.name}} Address: {{customer.address}}'
};
});
Я пытаюсь модульное тестирование этого, но я не могу показаться, чтобы выяснить, как вводить услугу в моя директива в модульном тесте.
var tests;
(function (tests) {
describe('myCustomer Directive', function() {
var scope, createDirective;
beforeEach(angular.mock.module('app'));
beforeEach(angular.mock.module('templates'));
beforeEach(angular.mock.inject(function ($injector) {
var $compile = $injector.get('$compile');
var myService = $injector.get('myService');
scope = $injector.get('$rootScope');
// where do I inject myService???
createDirective = function() {
return $compile('<my-customer></my-customer>')(scope);
};
}));
describe('on creation', function() {
var sut;
beforeEach(function() {
sut = createDirective();
scope.$digest();
});
it('creates an element node', function() {
var contents = sut.contents();
expect(contents[0].nodeType).toBe(sut[0].ELEMENT_NODE);
});
});
});
})(tests || (tests = {}));
Проблема заключается в том, что мне нужно, чтобы иметь возможность явно вводить зависимость, так что я могу дразнить некоторые из его звонков. Это возможно?
Here's a Plunker с моим кодом приложения.
Вам не нужно вводить его. Угловая инъекция для вас. –
В этом проблема: это не так. Я получаю неизвестную ошибку поставщика. –
Если у вас есть ошибка, напишите полное сообщение об ошибке/stacktrace в вопросе. –