как получить элемент HTML и обойти * ngIf в угловом тестировании

Я пытаюсь получить элемент div, но он всегда равен нулю в [переменная элемента в спецификации], я пытался обнаруживать изменения, автоматически определять изменения, подделывать асинхронность, ничего не работает, я знаю, что ngIf является причиной, потому что когда я использую [ hidden] это работает, но мне нужно обойти ngIf, мне нужно было добавить projectServiceMock к провайдеру? Спасибо за помощь


    <div *ngIf="project" class="test1">
       <p>Welcme</p>
    </div>

и спецкод


  it('test1',()=>{
    fixture.detectChanges();
    const element: ElementRef = fixture.debugElement.query(By.css('.test1'));
    fixture.detectChanges();
  });


person Ilyas Ayuubi    schedule 06.12.2020    source источник
comment
Возможно, значение project не соответствует действительности.   -  person R. Richards    schedule 06.12.2020
comment
@R.Richards, объект проекта не нулевой, это то, что вы имеете в виду под честностью?   -  person Ilyas Ayuubi    schedule 06.12.2020
comment
Не null, undefined, пустая строка или ноль (0).   -  person R. Richards    schedule 06.12.2020
comment
@R.Richards нет, у него есть значения, а не какие-либо из них (не нуль, не определено, пустая строка или ноль)   -  person Ilyas Ayuubi    schedule 06.12.2020


Ответы (1)


Я думаю, что project ложно.

Попробуйте проверить, работает ли следующее:

 it('test1',()=>{
    component.project = {};
    fixture.detectChanges();
    const element: ElementRef = fixture.debugElement.query(By.css('.test1'));
    fixture.detectChanges();
    expect(element).toBeTruthy();
  });
person AliF50    schedule 06.12.2020