9

我的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

4

1 回答 1

18

当您调用配置函数时,您的模块处于运行阶段。那时您不能再注入提供程序。尝试移动注入了 someServiceProvider 的函数。

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

it('should work now', inject(function(some) {
    expect(some.func()).toBeAvailable();
}));
于 2013-06-29T15:24:03.943 回答