测试UpgradeComponent引发NullInjectorError:$ injector没有提供者!错误

问题描述 投票:1回答:1

我有一个我要升级的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,但是仍然不清楚如何测试。

angular angular-test angular-testing angular-upgrade
1个回答
0
投票

关于如何使用它来设置组件的测试,这是一个很好的example。没有堆积如山的挑战,很难获得更多帮助,但是当我不得不测试类似的东西时,这对我有用。

[当我这样做时,我只是将这些东西带到了“它”之外,因此可以将其用作设置。可以肯定的是,我在beforeEach中完成了大部分的设置。我刚刚在描述中声明了我需要的变量,但在beforeEach中对其进行了初始化,以便可以在测试中使用它们。

没有堆栈闪电时很难有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.