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

config 関数を呼び出すまでに、モジュールは実行段階にあります。その時点で、プロバイダを注入できなくなります。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 に答える