Угловое тестирование: возможно ли заблокировать сервис, предоставляемый импортированным модулем
Я тестирую угловой компонент, который использует член другого модуля (это декоратор). Вот почему мне нужно импортировать другой модуль при создании 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 }