3

我刚刚开始为 Angular 编写单元测试。当我在几乎每个组件(和一些服务)中使用 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();
    }));
}
4

1 回答 1

1

可以在全局测试级别提供它,尽管它旨在按模块导入和提供,因为这符合单元测试的精神。

根据您的配置,您应该有configuration-test.module.ts一个TestBed使用.appInjectordescribe()

于 2017-10-26T09:00:36.833 回答