gpt4 book ai didi

unit-testing - Angular 2中的单元测试ag-grid

转载 作者:太空狗 更新时间:2023-10-29 17:28:57 25 4
gpt4 key购买 nike

有人在 Angular 2 中对 ag-grid 组件进行过单元测试吗?

对我来说,this.gridOptions.api 在测试用例运行时保持未定义状态。

最佳答案

很抱歉来晚了一点,但就在几天前,我还在寻找这个问题的答案,所以想为最终来到这里的其他人留下答案。正如上面 Minh 所提到的,现代等效的 $digest 确实需要运行才能使 ag-grid api 可用。

这是因为在 onGridReady() 运行后,您可以通过参数访问 api,看起来像这样。当带有网格的组件初始化时,它会自动运行。提供它在网格 (gridReady)="onGridReady($event)"

中定义
public onGridReady(params)
{
this.gridOptions = params;
}

这意味着您现在可以访问 this.gridOptions.api 并且它会被定义,您需要通过运行 detectChanges() 在您的测试中重新创建它。以下是我如何让它为我的项目工作。

fixture = TestBed.createComponent(TestComponent);
component = fixture.componentInstance;

fixture.detectChanges(); // This will ensure the onGridReady(); is called

这应该反过来导致 .api 在运行测试时被定义。这是 Angular 6。

有时测试可能需要执行 await 或 tick:

  it('should test the grid', fakeAsync( async () => {
// also try tick(ms) if a lot of data is being tested
// try to keep test rows as short as possible
// this line seems essential at times for onGridReady to be processed.
await fixture.whenStable();
// perform your expects...after the await
}));

关于unit-testing - Angular 2中的单元测试ag-grid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42299256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com