我有一个我要升级的angularjs组件:
import { Directive, ElementRef, Injector, Output, EventEmitter } from '@angular/core';
import { UpgradeComponent } from '@angular/upgrade/static';
@Directive({
selector: 'up'
})
export class UpDirective extends UpgradeComponent {
constructor(elementRef: ElementRef, injector: Injector) {
super('old', elementRef, injector);
}
}
当我运行应用程序时,此组件工作正常。
但是,当我尝试测试使用该指令的Angular 8组件时,出现以下错误:
NullInjectorError: StaticInjectorError(DynamicTestModule)[$injector]:
StaticInjectorError(Platform: core)[$injector]:
NullInjectorError: No provider for $injector!
我假设它来自UpgradeComponent中使用的注射器。但是,我不确定如何将其提供给我的说明。
Angular很好地记录了如何使它在应用程序中起作用,但是没有关于如何测试的任何信息:https://angular.io/api/upgrade/static/UpgradeComponent
也看过这里:https://github.com/angular/angular/issues/24369,但是仍然不清楚如何测试。
关于如何使用它来设置组件的测试,这是一个很好的example。没有堆积如山的挑战,很难获得更多帮助,但是当我不得不测试类似的东西时,这对我有用。
[当我这样做时,我只是将这些东西带到了“它”之外,因此可以将其用作设置。可以肯定的是,我在beforeEach中完成了大部分的设置。我刚刚在描述中声明了我需要的变量,但在beforeEach中对其进行了初始化,以便可以在测试中使用它们。
没有堆栈闪电时很难有帮助。