测试角度材质数据源排序

时间:2019-07-29 08:45:51

标签: angular jasmine angular-material karma-jasmine

我正在尝试对Angular Material提供的DataSource具有排序功能的组件进行单元测试。我的测试当前看起来如下:

it('should contain a sortable table', (done) => {
    fixture.whenStable().then(() => {
      fixture.detectChanges();
      const tableRows = fixture.debugElement.nativeElement.querySelectorAll('tr');
      const sortButtons = fixture.debugElement.nativeElement.querySelectorAll('button.mat-sort-header-button');
      expect(sortButtons.length).toBe(2);
      sortButtons[0].click();
      fixture.detectChanges();
      tableRows.forEach(row => {
        console.log(row.cells[0].innerHTML);
      });
      done();
    });
});

找到了排序按钮,并且单击也似乎可以正常工作,但是控制台中的输出与预期的不一样。它还没有更新。.

通过ng运行应用程序时,排序工作良好。但是,这里的排序无法按预期进行,或者我的测试似乎没有记录DOM中所做的更改?如何正确实施此测试?

排序功能如下:

this.dataSource.sortingDataAccessor = (item: DaResult, property: string) => {
  switch (property) {
    case 'da':
      return item.da;
    case 'currentcomponent':
      return item.componentCurrent.partNumber;
    default:
      return item.da;
  }
};

0 个答案:

没有答案