AG-Grid gridReady 未在使用 Angular 和 Jest 的测试中调用
Posted
技术标签:
【中文标题】AG-Grid gridReady 未在使用 Angular 和 Jest 的测试中调用【英文标题】:AG-Grid gridReady not being called on tests with Angular and Jest 【发布时间】:2021-12-09 04:37:10 【问题描述】:在 Jest 测试中未调用 Angular AG Grid 的 gridReady
方法。
你知道为什么吗?
这里有我的测试代码:
import TestBed from "@angular/core/testing";
import BrowserDynamicTestingModule, platformBrowserDynamicTesting from "@angular/platform-browser-dynamic/testing";
import AppComponent from "./app.component";
import FormsModule from "@angular/forms";
import AgGridModule from "ag-grid-angular";
describe('AG Grid', () =>
it('calls grid ready', async()=>
TestBed.resetTestEnvironment();
TestBed.initTestEnvironment(BrowserDynamicTestingModule,
platformBrowserDynamicTesting());
await TestBed.configureTestingModule(
imports: [
FormsModule,
AgGridModule.withComponents([]),
],
declarations: [AppComponent]
).compileComponents();
const fixture = TestBed.createComponent(AppComponent);
const component = fixture.componentInstance;
fixture.detectChanges();
expect(component.api).toBeDefined();
expect(component.columnApi).toBeDefined();
);
)
Here 你可以看到它的代码沙箱。 Here 是一个 GitHub 存储库。
【问题讨论】:
【参考方案1】:在fixture.detectChanges()
之后使用await fixture.whenStable()
解决了问题
【讨论】:
以上是关于AG-Grid gridReady 未在使用 Angular 和 Jest 的测试中调用的主要内容,如果未能解决你的问题,请参考以下文章
AG Grid:通过 ComponentFactoryResolver 在组件中加载网格时未触发 gridReady 事件
Syncfusion 控件未在 iOS 本机 UIWebView 上加载
在两个单独的 ag-Grid 上使用 ag-Grid 的 sizeColumnsToFit() 时警告“网格零宽度”,由选项卡菜单显示