ExpressionChangedAfterItHasBeenCheckedError при тестировании таблицы угловых материалов - PullRequest
0 голосов
/ 24 ноября 2018

Используя Angular 7, я добавил таблицу материалов в свое приложение с помощью ng generate @angular/material:table test-table

Внутри сгенерированного шаблона есть paginator:

<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 голосов
/ 08 декабря 2018

Не уверен, насколько он кошерный, но в моем случае я просто удалил вызов fixture.detectChanges () из файла спецификации.Я работаю с A6 ReactiveForm, устанавливая некоторые начальные фиктивные значения диапазона дат в тесте.Форма работает нормально, но тест не удался с вашей ошибкой.

...