Angular 6 Тестовый пример Karma / Jasmine Unit для динамически добавляемого компонента - PullRequest
1 голос
/ 01 августа 2020

У меня есть компонент, в который я динамически добавляю другой компонент диаграммы. Вот код:

appendBarChart(historicalData, key, type) {

    // Create component dynamically inside the ng-template
    const componentFactory = 
      this.componentFactoryResolver.resolveComponentFactory(this.injectableComponentClass);

    const viewContainerRef = this.viewContainer;
    viewContainerRef.clear();
    const componentRef = viewContainerRef.createComponent(componentFactory);

                             ....
    componentRef.instance.width = 300;
   }

Вот тестовый пример:

  it('Should append historical data', inject([LineBarChartComponent], (childComponent: LineBarChartComponent) => {
component.appendBarChart(historicalData, 8, 'group');
fixture.detectChanges();
expect(childComponent.maxValue).toBe(5);
expect(childComponent.lineWithBar).toHaveBeenCalled();
}));

Когда я выполняю этот тестовый пример, я получаю следующую ошибку: Не удается прочитать свойство «nativeElement» неопределенного .

Дочерний компонент имеет следующий код:

constructor(private viewContainerRef: ViewContainerRef) {
    this.elem = this.viewContainerRef.element.nativeElement;
}

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...