Angular 测试角度材质数据源排序
我正在尝试对Angular Material提供的数据源的具有排序功能的组件进行单元测试。我的测试当前显示如下:Angular 测试角度材质数据源排序,angular,jasmine,angular-material,karma-jasmine,Angular,Jasmine,Angular Material,Karma Jasmine,我正在尝试对Angular Material提供的数据源的具有排序功能的组件进行单元测试。我的测试当前显示如下: it('should contain a sortable table', (done) => { fixture.whenStable().then(() => { fixture.detectChanges(); const tableRows = fixture.debugElement.nativeElement.querySele
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();
});
});
this.dataSource.sortingDataAccessor = (item: DaResult, property: string) => {
switch (property) {
case 'da':
return item.da;
case 'currentcomponent':
return item.componentCurrent.partNumber;
default:
return item.da;
}
};
排序按钮会被找到,单击也会像它看起来那样工作,但是控制台中的输出并不像预期的那样。它有点没有更新
通过ng serve运行应用程序时,排序效果良好。但是这里的排序没有按预期工作,或者我的测试似乎没有注册DOM中所做的更改?如何正确实施此测试
排序函数如下所示:
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();
});
});
this.dataSource.sortingDataAccessor = (item: DaResult, property: string) => {
switch (property) {
case 'da':
return item.da;
case 'currentcomponent':
return item.componentCurrent.partNumber;
default:
return item.da;
}
};
你能展示排序功能吗?@PhilippEscher:你能在
排序功能中加入一些控制台。记录,看看它是否是通过从测试用例中触发的。点击()?请确认