我们可以在 TestBed 中配置 Injector
Can we configure Injector in TestBed
我正在 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'
对于如何以我可以测试的方式编写它的任何帮助,我表示感谢。谢谢!
当您错误地在 Module 中提供 Providers 时,通常会出现上述问题,反之亦然。只需仔细检查您是否在提供程序下的模块和服务下正确导入了模块。
相关参考。
我正在 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'
对于如何以我可以测试的方式编写它的任何帮助,我表示感谢。谢谢!
当您错误地在 Module 中提供 Providers 时,通常会出现上述问题,反之亦然。只需仔细检查您是否在提供程序下的模块和服务下正确导入了模块。
相关参考。