У меня есть компонент, который отображает таблицу с использованием Angular Material mat-table. Он работает нормально, но в моем спецификационном файле таблица не отображает элементы тела (td и tr), поэтому тест не проходит.
Кажется, я правильно инициализирую текст, я импортирую MatTableModule, а также инициализирую источник данных для mat-table.
Компонент получает ввод, который поступает в источник данных, он не асинхронный, и я вызываю fixture.detectChanges() после инициализации ввода.
Теги table и body отображаются, но тег body пуст.
Любые предложения, почему данные table не отображаются?
Спасибо
вот пример тестового кода:
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
const dataSource: DataSource[] = [{id: 1, name: 'a'}];
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations:[MyComponent],
imports: [MatTableModule],
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
debugElement = fixture.debugElement
});
it('should display results', () => {
component.myDataSource = dataSource;
fixture.detectChanges();
console.info(debugElement.nativeElement); //here I see that the body is empty
const elements = debugElement.queryAll(By.css('td'));
expect(elements.length).toBe(2); // I get 0
});
Кстати, он работает нормально и только тест проваливается? Я имею в виду, что это отображается, когда вы локально отлаживаете свое приложение?





Попробуйте импортировать MatTableDataSource, объявить таблицу, содержащую массив объектов, инициализировать с помощью new MatTableDataSource<type>(array) и не забудьте проверить определения столбцов, потому что таблица не отображается, если определения вызывают ошибку (например, она не находит какой-то столбец и т. д.)
Есть ли шанс показать нам источник тестового примера?
Разве объявление источника данных не должно выглядеть примерно так: component.myDataSource= new MatTableDataSource(someArray); Таким образом, создается привязка.
не в соответствии с первым примером здесь: material.angular.io/components/table/examples
До того, как я перешел к таблице материалов, мой тест был зеленым
Извини за это. Если вы покажете нам код своих компонентов, это может немного помочь. Правильно ли отображается таблица при тестировании?
Да, в dev так и есть.
я отредактировал пост