таблица характеристик углового материала - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть компонент, который отображает таблицу с использованием таблицы материалов.Он работает нормально, но в моем spec-файле таблица не отображает элементы тела (tds и trs), поэтому тест не пройден.Кажется, что я правильно инициализирую текст, импортирую MatTableModule, а также инициализирую источник данных для таблицы mat.

Компонент get, входящий в источник данных, не асинхронный, и я вызываю fixture.detectChanges () после инициализации ввода.

Визуализируются теги table и body, но тег body пуст.Любые предложения, почему данные таблицы не отображаются?

Спасибо

вот пример кода теста:

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.log(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
});

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте импортировать MatTableDataSource, объявить таблицу, содержащую массив объектов, инициализировать с новым MatTableDataSource (массив) и не забудьте проверить определения столбцов, потому что таблица не отображается, если определения вызывают ошибку (например, это не так).найти столбец и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...