Я создал угловую настраиваемую директиву с сервисом под названием scriptingService. Цель состоит в том, чтобы высмеять вызов службы с помощью spyOn. Это часть теста:Как mockout servicecall в тесте жасмина?
beforeEach(inject(function ($rootScope, $compile,_scriptingService_) {
scope = $rootScope.$new();
scope.row = 1;
scriptingService = _scriptingService_;
Restangular = _Restangular_;
spyOn(Restangular, 'all').and.callThrough();
spyOn(scriptingService, 'getScript').and.callThrough();
element = angular.element('<ul id="rows" ui-list="row">');
$compile(element)(scope);
scope.$digest();
}));
Это код директивы:
.directive('uiList', [
function(scriptingService) {
return {
scope: {
lengthModel: '=uiList'
},
link: function(scope, elm, attrs) {
scope.$watch('lengthModel', function(newVal) {
scope.test=2;
console.log('kut');
scriptingService.getScript(request).then(function(scripts){
scope.scripts = scripts;
});
});
}
};
}
]);
Однако я получаю сообщение об ошибке:
RestangularProvider <- Restangular <- scriptingService
Как можно издеваться над scriptingService и убедитесь, метод был вызван? Plunker исх: http://plnkr.co/edit/CDc7EV?p=preview
Ваш plunkr имеет несколько проблем: старый жасмин версии в сочетании с новым синтаксисом, and.callThrough() не работает в версии 1.3.1 (обновление жасмин или использование иCallThrough()), и ваш скриптингService не существует в plunkr. Ожидается ошибка «Неизвестный поставщик» на plunkr, так как такой службы не зарегистрировано в модуле. –
Я обновил plunkr и добавил scriptService. Я издевался над Restangular, но все еще получаю сообщение об ошибке: Ошибка: Неизвестный поставщик: RestangularProvider <- Restangular <- scriptingService –
Я не вижу его на http://plnkr.co/edit/uhyzg6?p=preview –