У меня есть компонент 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. Однако я не уверен, как предоставить это моему spe c .ts.
Angular делает хорошую работу, документируя, как заставить это работать в приложении, но ничего о том, как тестировать: https://angular.io/api/upgrade/static/UpgradeComponent
Также посмотрел здесь: https://github.com/angular/angular/issues/24369, однако все еще не ясно, как тестировать.