2013-06-26 6 views
9

У меня есть сервис на моем someModule модуле:Настройка Угловое поставщика услуг в тесте Jasmine

someModule.provider('someService', function() { 
    this.options = {}; 
    this.$get = function() { 
     return options; 
    }; 
}); 

Я пишу спецификации, и до сих пор у меня есть следующие:

beforeEach(mocks.module('directives', ['someModule'])); 

beforeEach(function() { 
    directives.config(function (someServiceProvider) { 
     someServiceProvider.options({ foo: 'bar' }); 
    }); 
}); 

мне нужно настройте мою службу someService перед каждым тестом в моей спецификации. Однако в следующем коде возникает ошибка: Error: Unknown provider: someServiceProvider

Что я делаю неправильно? Я думал, что если мне понадобится модуль, то любые поставщики, доступные в этом модуле, будут «унаследованы»? Как я могу настроить options в моей службе someService в этом тесте?

ответ

18

К моменту вызова функции конфигурации ваш модуль находится в фазе запуска. В этот момент вы больше не можете вводить поставщика. Попробуйте переместить функцию, в которую в нее вводится некоторый сервис.

beforeEach(module('myModule', function(someProvider) { 
    someProvider.configure(1); 
})); 

it('should work now', inject(function(some) { 
    expect(some.func()).toBeAvailable(); 
}));