Угловое тестирование: возможно ли заблокировать сервис, предоставляемый импортированным модулем

Я тестирую угловой компонент, который использует член другого модуля (это декоратор). Вот почему мне нужно импортировать другой модуль при создании DynamicTestModule. Импортированный модуль предоставляет сервис, который я хотел бы заглушить. Возможно ли использовать утилиты Angular Testing? Или, может быть, я могу заглушить весь импортированный модуль и обеспечить его заглушку? Не могли бы вы привести мне такой пример?

Вот мое определение модуля тестирования:

TestBed.configureTestingModule({
  imports: [TranslationModule],
  declarations: [SomeComponent],
  providers: [
    { provide: Router, useValue: routerSpy },
    { provide: ActivatedRoute, useValue: ActivatedRouteStub },
    { provide: SomeService, useValue: {} },
    { provide: ToastrService, useValue: {} }
  ],
  schemas: [NO_ERRORS_SCHEMA]
});

1 ответ

Если вы ссылаетесь на "Someservice", вы добавляете следующее в верхней части кода:

class SomeserviceStub { // stubbed code }

и измените в массиве вашего провайдера:

{ provide: Someservice, useClass: SomeserviceStub }

Другие вопросы по тегам