angular 4+ - 全局导入模块以进行测试

时间:2017-10-26 08:56:18

标签: angular unit-testing karma-jasmine ngx-translate

我刚刚开始为角度进行单元测试。由于我在每个组件(以及一些服务)中使用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();
    }));
}

1 个答案:

答案 0 :(得分:1)

可以在全球测试级别提供它,虽然它是为了单元测试的精神而导入并提供每个模块

根据您的配置,您应该configuration-test.module.ts使用TestBed引导appInjector,如果您在该模块中提供服务,则会为所有describe()提供服务测试,但您仍需要在组件中手动注入它们。