angular - 测试 Angular 材质数据源排序
问题描述
我正在尝试对 Angular Material 提供的具有排序功能的组件进行单元测试。我的测试目前看起来如下:
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 serve 运行应用程序时,排序效果很好。但是这里的排序没有按预期工作,或者我的测试似乎没有记录在 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;
}
};
解决方案
推荐阅读
- where - 我试图在 crud 控制器中使用 addclause where in (1,2,4,5,6...)
- python - QregExp 类 PyQt4
- c# - 如何使用 msbuild 15 从生成的 nuget 包中的 nuspec 文件中删除依赖项部分
- python - 你能用 Tox 中的文件列表遍历命令吗
- qt - 让 QTabWidget 平放
- algorithm - 我怎样才能找到这个问题的复杂性:循环中的递归函数
- r - 在函数 R 中循环
- internationalization - 如何国际化 QMessageBox::warning 上的按钮?
- r - 合并看起来像带有栅格层 R 的网格的大型空间多边形
- winapi - 当我在设备管理器中更改 COM 端口号时会发生什么?