В моем событии onGridReady
я назначаю api
this.gridApi
.
private onGridReady(gridReadyEvent: GridReadyEvent): void {
this.gridApi = gridReadyEvent.api;
}
У меня есть метод, в котором я использую this.gridApi
.
public getGridState(): GridState {
if (this.gridApi) {
// code to get state
}
}
Я пишу модульный тест для getGridState
.
Модульный тест:
it('should be able to get state of grid', async () => {
waitForGridApiToBeAvailable(component.gridOptions, () => {
component.getGridState();
});
});
Итак, чтобы убедиться, что this.gridApi
определено, я использую waitForGridApiToBeAvailable
, упомянутый в документ по модульному тестированию ag-Grid. Итак, это будет означать, что когда gridOptions.api
определено, this.gridApi
тоже будет, верно?
Проблема:
Когда я запускаю свой модульный тест, он вызывает component.getGridState()
только после того, как component.gridOptions.api
определено, но this.gridApi
равно undefined
в getGridState()
.
Кроме того, меня больше смущает то, что onGridReady()
вызывается после вызова getGridState()
, и когда я утешил this.gridOptions.api
, оказалось, что это null
. Как this.gridOptions.api
может быть null
, когда getGridState()
вызывается из модульного теста после проверки определения component.gridOptions.api
, а onGridReady()
вызывается после getGridState()
?
Примечание. Я попытался объяснить как можно более ясно. Дайте мне знать, если что-то нуждается в дополнительных пояснениях.
fixture.detectChanges()
. - person   schedule 26.09.2020