#angular #unit-testing #angular-testing-library #mat-pagination
Вопрос:
У меня <mat-paginator>
элемент работает нормально, я просто хочу знать, как, черт возьми, я могу протестировать getPaginatorData
метод для (page)
атрибута с помощью библиотеки @testing-library/угловой библиотеки?
<mat-paginator
#billingItemsPaginator
[pageIndex]="paginatorObject.billingItems.pageIndex"
[pageSize]="paginatorObject.billingItems.pageSize"
[pageSizeOptions]="[6, 12]"
(page)="getPaginatorData($event, 'billingItems')"
showFirstLastButtons="true"
>
</mat-paginator>
Это мой компонент
billingItemsSource = new MatTableDataSource<any>();
public billingItemsPaginator: MatPaginator;
@ViewChild('billingItemsPaginator') set matBillingItemsPaginator(
mp: MatPaginator
) {
this.billingItemsPaginator = mp;
this.billingItemsSource.paginator = this.billingItemsPaginator;
}
Заранее спасибо.
Ответ №1:
Я все понял.
Мне нужно было сделать это в моем блоке перед началом:
const { fixture } = await render(MyComponent, {
excludeComponentDeclaration: true,
imports: [
RouterTestingModule,
CoreModule,
FormsModule,
NoopAnimationsModule,
MatAutocompleteModule,
MatPaginatorModule,
MatSortModule,
MatTableModule,
HttpClientTestingModule,
MatTabsModule,
],
});
jest.runAllTimers();
component = fixture.componentInstance as MyComponent;
должны let component;
быть доступны во всем мире.
а затем запустите мой тест
const pageObject = component.getPaginatorData(
{
length: 42,
pageIndex: 1,
pageSize: 6,
previousPageIndex: 0,
},
'invoices'
);
expect(pageObject.pageIndex).toEqual(1);