2016-10-16 16 views
0

私は既存の角度アプリを持っています。今私はいくつかの単体テストから始めたいと思います。ジャスミンとカルマを使って私のサービスをテストします。 私の問題は、$ stateProvider依存性を持つサービスをテストできないことです。私が使用しています何 :テストモジュールとプロバイダ依存関係をどのようにするか?

angular.module('starter.start', []).config(function ($stateProvider) { 
      // ... 
}).factory('MyService', function() { 
      // ... 
}); 

テスト:

describe('MyServiceSpec', function() { 
    var MyService; 
    beforeEach(angular.mock.module('starter.start')); 
    beforeEach(inject(function(_MyService_) { 
     MyService= _MyService_; 
    })); 

    it('should exist', function() { 
     expect(MyService).toBeDefined(); 
    }); 
}); 

が、私はエラーを取得するUnknown provider: $stateProvider は - 角度モック1.5.8

私のコード - 1.5.8 をangularjs。 私の研究では、私は$provideで何かをする必要があることを知ったが、これをどうやって行うのか分からない。

答えて

1

次回あなたがメインのアプリ

beforeEach(angular.mock.module('ui.router')); 
beforeEach(angular.mock.module('starter.start')); 

前ui.router注入する必要があり、その後、あなたがサービスに

+0

おかげで、これを呼び出す必要があり、あなたの設定ファイルに$ stateProviderを追加する

が必要助けてくれた。しかし、$ stateProviderをモックする方法はありませんか?将来は、私のモジュール設定が$ stateProviderのような依存関係としてすべての依存関係を初期化したくありません。私がテストしたい実際のサービスは$ stateProviderとは関係がないためです。 – user3481997

+0

特定のテストケースに対して使用する依存関係を注入する必要がありますが、configからすべてを注入する必要はありません。 –

関連する問題