Я пишу тестовые примеры для пользовательского ErrorHandler в Angular. В конструкторе я добавил зависимость Injector, так как узнал, что провайдеры инициализируются после ErrorHandler. Это указано ниже:
export class ApplicationErrorHandler implements ErrorHandler {
constructor(injector: Injector) {
this.injector = injector;
}
}
Теперь, когда я пишу тестовые примеры, как мне создать свой обработчик ошибок. Могу ли я добавить Injector в качестве провайдера или сделать это, как показано ниже:
errorHandler = injector.get(ApplicationErrorHandler);
В любом случае я получаю errorHandler как undefined и следующую ошибку:
Error: Unexpected value '[object Object]' imported by the module 'DynamicTestModule'
Я ценю любую помощь в том, как написать это так, чтобы я мог его протестировать. Благодарю вас!
beforeEach(async() => { TestBed.configureTestingModule({ providers: [ ApplicationErrorHandler, LoggerService, Injector ], imports: [RouterTestingModule, AppInsights] }).compileComponents(); injector = TestBed.get(InjectionToken); errorHandler = injector.get(ApplicationErrorHandler); //errorHandler = new ApplicationErrorHandler(<any> injector); spyOn(errorHandler, 'logError'); });
- person Divya   schedule 30.06.2018AppInsights
Модуль илиservice
? Эта ошибка часто возникает, когда вы неправильно предоставили услуги внутри массива импорта или любую другую неправильную комбинацию. stackoverflow.com/questions/40014712/ - person Amit Chigadani   schedule 30.06.2018