首页 > 解决方案 > 在检查要在单元测试中定义的 gridOptions.api 后触发 onGridReady 事件时,gridOptions.api 为 null

问题描述

在我的onGridReady事件中,我分配apithis.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已定义,我使用了ag-Grid unit testing docwaitForGridApiToBeAvailable中提到的内容。所以,这意味着什么时候被定义,也是,对吧?gridOptions.apithis.gridApi

问题

当我运行我的单元测试时,它component.getGridState()只会在component.gridOptions.api定义之后调用,但this.gridApi在.undefinedgetGridState()

除此之外,更让我困惑的是,onGridReady()在被调用之后getGridState()被调用,当我安慰时this.gridOptions.api,结果是null。在检查定义并在之后调用之后如何this.gridOptions.api从单元测试中调用null时?getGridState()component.gridOptions.apionGridReady()getGridState()

注意:我试图尽可能清楚地解释。让我知道是否需要更多解释。

标签: angularunit-testingkarma-jasmineag-gridag-grid-angular

解决方案


推荐阅读