我有一项依赖于其他服务的服务。我想测试它。
我的服务:
No
我的测试:
@Injectable()
export class LanguageService {
constructor(private translate: TranslateService) {
}
当我运行测试时,我得到没有TranslateService的提供者。 TranslateService依赖于其他依赖项等。
如何添加TranslateService依赖项?有没有办法在没有列出其众多依赖项的情况下这样做?
答案 0 :(得分:2)
您可以模拟依赖
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
});
});
答案 1 :(得分:0)
问题是我在我的LanguageService中使用了ngx-translate。它需要一些进口才能发挥作用。在我把它们包括在内之后它运行良好。
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})],
providers: [LanguageService]
});