2016-09-11 7 views
3

私はこのように私のbeforeEachを記述しようとしていますので、すべてのit必要なモジュール/プロバイダを取得します。addProviderはRC6で廃止されて以来、angular2ジャスミンテスト仕様でプロバイダを追加する方法は?

beforeEach(() => addProviders([ 
     BaseRequestOptions, 
     MockBackend, 
     { 
      provide: Http, 
      useFactory: (backend: MockBackend, options: BaseRequestOptions) => new Http(backend, options), 
      deps: [MockBackend, BaseRequestOptions] 
     }, 
     MyService 
    ])); 

しかしaddProviders方法はRC6に廃止されているので、私のプロバイダを追加するためのより良い代替手段は何ですか?

+0

受け入れられた答えに加えて、私はTestBed.compileComponents()を動作させるために以下を追加する必要がありました。 –

答えて

5

TestBed@angular/core/testingを使用してテストモジュールを作成します。たとえば、

beforeEach(() => { 
    TestBed.configureTestingModule({ 
    imports: [ ... ], 
    declarations: [ ... ], 
    providers: [ 
     { .. }, 
     MyService 
    ] 
    }); 
}); 

通常のモジュールの設定とほぼ同じですが、何も書き出す必要はありません。

ng2-test-seedでさらに詳しい例を参照してください。 TestBed

+0

私はまさにこれをやっていますが、私がテストしているサービスはプロバイダリストにありますが、私のサービスのプロバイダはないと私に伝えています。 :( – slooker

関連する問題