ngx-translate как тестировать компоненты - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть приложение, которое использует эту библиотеку. Как мне протестировать компоненты? Я НЕ ХОЧУ ИСПЫТАТЬ БИБЛИОТЕКУ. Мне просто нужно запустить тесты моего компонента без множественных ошибок о TranslateModule, затем TranslateService, затем TranslateStore ..., пока я не получу ошибку при компиляции.

Есть ли простой способ запустить мои тесты с этой зависимостью?

Еще раз, я не хочу тестировать эту библиотеку (проверьте, переводится ли строка), мне нужно запустить тесты для компонентов, которые полагаются на эту библиотеку.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Если вам не обязательно переводить ключи, вы можете импортировать TranslateModule в своем тесте следующим образом:

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [
      ...
    ],
    imports: [
      TranslateModule.forRoot(),
    ],
    providers: [
      ...
    ]
  })
  .compileComponents();
}));

Это покажет только ключи перевода

0 голосов
/ 19 ноября 2018

Что я сделал, так это сконфигурировал всю свою конфигурацию, связанную с переводом, в отдельном TranslationModule, который я импортировал в SharedModule.

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';

@NgModule({
  declarations: [],
  imports: [CommonModule,
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: IfYouHaveACustomFactory,
        deps: [HttpClient]
      }
    })],
  exports: [TranslateModule],
  providers: [],
})
export class TranslationModule {

}

Затем его можно экспортировать во все компоненты, которые импортируют SharedModule,

@NgModule({
  imports: [],
  exports: [TranslationModule, SomeOtherModule],
})
export class SharedModule { }

И в своем spec-файле вы просто импортируете SharedModule в свой TestBed.configureTestingModule() как

 beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        RouterTestingModule,
        SharedModule,
...

И тесты для компонентов, которые используют службу перевода или конвейер, должны работать нормально!

...