Как получить доступ к @ContentChildren в файле спецификации? - PullRequest
0 голосов
/ 11 января 2019

Я тестирую компонент, у которого список запросов @ContentChildren. В моем компоненте они доступны в хуке жизненного цикла AfterContentInit. Но когда я намереваюсь получить доступ к тому же в моем spec-файле, мой список запросов возвращает меня с пустыми массивами.

Я пытаюсь протестировать компонент без создания фиктивного компонента , как это сделано в этой ссылке . Я пробовал решение, приведенное в ссылке ниже, но у меня это не сработало.

Угловое 2 модульное тестирование - @ViewChild не определено

В моем компоненте:

    @ContentChildren(GetTemplateDirective) public templates: QueryList<GetTemplateDirective<AccordionTemplate>>;

В файле спецификации компонента:

    it('should show the custom icon when the external template is passed', async(function () {
       accordionFixture.detectChanges();
       accordionComponent.ngAfterContentInit();
       console.log(accordionComponent.templates);
       expect(component.templates.toArray().length).toBeGreaterThan(0);
    }));

1 Ответ

0 голосов
/ 11 января 2019

Вы можете запросить, используя элемент отладки:

 const debugEl = fixture.debugElement;
 debugEl.query(By.directive(AccordionTemplate));
...