测试角度材质表时ExpressionChangedAfterItHasBeenCheckedError

时间:2018-11-24 06:31:28

标签: angular karma-jasmine angular-material2 angular7

使用Angular 7,我通过ng generate @angular/material:table test-table

向我的应用程序添加了材料表

在生成的模板中有一个分页器:

<mat-paginator #paginator
    [length]="dataSource.data.length"
    [pageIndex]="0"
    [pageSize]="50"
    [pageSizeOptions]="[25, 50, 100, 250]">
</mat-paginator> 

在初始化时,数据源已更改:

ngOnInit() {
  this.dataSource = new ItemsTableDataSource(
    this.paginator,
    this.sort,
    this.route.paramMap,
    this.afs
 );
}

尝试在Karma expect(component).toBeTruthy();上编译组件时,出现以下错误

Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has 
changed after it was checked. Previous value: 'length: 0'. Current 
value: 'length: 1'.

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

不知道它是如何洁净的,但就我而言,我只是从规格文件中删除了“ fixture.detectChanges()”调用。我正在使用A6 ReactiveForm,在测试中设置一些初始虚拟日期范围值。表单工作正常,但测试失败并显示错误。