2017-10-03 5 views
2

私は別のサービスに依存するサービスを持っています。私はそれを試してみたい。依存関係のある角度テストサービス

マイサービス:

@Injectable() 
export class LanguageService { 
constructor(private translate: TranslateService) { 

} 

私のテスト:私はテストを実行すると

describe('LanguageService',() => { 
let service: LanguageService; 
beforeEach(() => { 
TestBed.configureTestingModule({ 
    providers: [LanguageService] 
}); 

service = TestBed.get(LanguageService); 
}); 

it('should set a preferred language',() => { 
    // Some test 
}); 
}); 

は私がTranslateServiceなしプロバイダーを取得します。 TranslateServiceは他の依存関係などに依存します。

TranslateServiceの依存関係を追加するにはどうすればよいですか?数多くの依存関係もリストしなくてもそれを行う方法はありますか?

答えて

0

依存関係を模擬することができます。それは働くためにいくつかの輸入が必要です。私がそれらを含めた後、それはうまくいった。

beforeEach(() => { 
TestBed.configureTestingModule({ 
    imports: [HttpClientModule, 
    TranslateModule.forRoot({ 
     loader: { 
     provide: TranslateLoader, 
     useFactory: HttpLoaderFactory, 
     deps: [HttpClient] 
     } 
    })], 
    providers: [LanguageService] 
}); 
2

あなたは、問題は、私は私のLanguageService内NGX-翻訳使用したことで

describe('LanguageService',() => { 
let service: LanguageService; 
class fakeService {}; 
beforeEach(() => { 
TestBed.configureTestingModule({ 
    providers: [LanguageService, {provide: TranslateService, useValue: fakeService}], 
}); 

service = TestBed.get(LanguageService); 
}); 

it('should set a preferred language',() => { 
    // Some test 
}); 
}); 
+0

お返事ありがとうございます。どういうわけか、嘲笑は私にとってはうまくいかなかった。私は "未定義はオブジェクトではありません"を得ました。私はそれを修正したい。私はTestBedでいくつかの輸入品を逃していました。 –

+0

私は私の答えで質問を閉じることができますか? –

関連する問題