我们可以在 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 时,通常会出现上述问题,反之亦然。只需仔细检查您是否在提供程序下的模块和服务下正确导入了模块。

相关参考。