如何测试 Angular mat-nav-list 是否包含元素?

How to test whether an Angular mat-nav-list contains an element?

我想检查 Angular mat-nav-list 是否包含元素。

我可以 select 它 fixture.debugElement.query(By.css('.items')),但我不确定如何检查它是否包含任何内容。

我的模板:

<mat-nav-list class="items">
    <a class="list-item" mat-list-item *ngFor="let item of items">
        <app-item-display [item]="item"></app-item-display>
    </a>
</mat-nav-list>

在我的测试中,我注入了 1 个项目并期望它呈现。 虽然组件确实包含一个项目,但我想检查它是否在列表中呈现。

尝试查询全部

const items= fixture.debugElement.queryAll(By.css('.list-item'));

然后你可以在伪造项目列表后检查长度是否正确

expect(items.length).toBe(2) // or your fake data length