我的someModule
模块上有一项服务:
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
?
答案 0 :(得分:18)
当您调用配置功能时,您的模块处于运行阶段。此时您无法再注入提供者。尝试移动注入了someServiceProvider的函数。
beforeEach(module('myModule', function(someProvider) {
someProvider.configure(1);
}));
it('should work now', inject(function(some) {
expect(some.func()).toBeAvailable();
}));