我刚刚开始为角度进行单元测试。由于我在每个组件(以及一些服务)中使用ngx-translate,我想询问是否有一种方法可以导入并在全局测试级别上提供它。
到目前为止,我已经在每个.spec文件中提供并导入了ngx-translate模块和http-loader
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
}),
],
declarations: [
AppComponent
]
}).compileComponents();
}));
}
答案 0 :(得分:1)
你可以在全球测试级别提供它,虽然它是为了单元测试的精神而导入并提供每个模块。
根据您的配置,您应该configuration-test.module.ts
使用TestBed
引导appInjector
,如果您在该模块中提供服务,则会为所有describe()
提供服务测试,但您仍需要在组件中手动注入它们。