【发布时间】:2018-12-09 12:04:59
【问题描述】:
我正在为 Angular 中的自定义 ErrorHandler 编写测试用例。在构造函数中,我添加了 Injector 的依赖项,因为我了解到提供程序在 ErrorHandler 之后被初始化。如下所示:
export class ApplicationErrorHandler implements ErrorHandler {
constructor(injector: Injector) {
this.injector = injector;
}
}
现在在编写测试用例时,我应该如何创建我的错误处理程序。我可以将 Injector 添加为提供程序,还是可以按如下方式添加:
errorHandler = injector.get(ApplicationErrorHandler);
在任何情况下,我都会将 errorHandler 视为未定义并出现以下错误:
Error: Unexpected value '[object Object]' imported by the module 'DynamicTestModule'
感谢任何有关如何以我可以测试的方式编写它的帮助。谢谢!
【问题讨论】:
-
你能发布你的 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'); }); -
是
AppInsights模块还是service?当您在导入数组或任何其他错误组合中错误地提供服务时,经常会出现此错误。 stackoverflow.com/questions/40014712/…
标签: angular karma-jasmine angularjs-injector