首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在酶中挂载ag-grid的实际内容?

如何在酶中挂载ag-grid的实际内容?
EN

Stack Overflow用户
提问于 2019-08-13 04:51:54
回答 1查看 1.2K关注 0票数 1

使用Ag-Grid时,如果能够针对DOM元素进行点击测试(例如,在设置点击处理程序时,希望针对第二行,模拟点击,并监视结果操作),那就太好了。

然而,AG-Grid不会在酶测试中呈现实际的网格内容,即使是在安装时也是如此。它只会渲染一个空的div。

我在这里创建了一个简单的CodePen (https://codesandbox.io/s/ag-grid-enzyme-9wkgn),它有一个通过的测试和一个失败的测试-但是,我似乎无法让它识别底层的网格内容。

代码语言:javascript
复制
describe("ag-grid", () => {
  let app;
  beforeEach(() => {
    app = mount(<Grid />);
  });
  it("renders a grid", () => {
    expect(app.find("AgGridReact").length).toBe(1);
  });
  it("renders 3 rows", () => {
    console.log(app.debug());
    expect(app.find(".ag-row").length).toBe(3);
  });
});

我希望有两个成功的测试--相反,debug打印出来:

代码语言:javascript
复制
<Grid>
  <div className="ag-theme-balham" style={{...}}>
    <AgGridReact columnDefs={{...}} rowData={{...}}>
      <div style={{...}} />
    </AgGridReact>
  </div>
</Grid> 

以及测试结果:

代码语言:javascript
复制
expect(received).toBe(expected)

Expected value to be (using ===):
  3
Received:
  0

  17 |   });
  18 |   it("renders 3 rows", () => {
  19 |     console.log(app.debug());
> 20 |     expect(app.find(".ag-row").length).toBe(3);
  21 |   });
  22 | });
EN

回答 1

Stack Overflow用户

发布于 2019-11-29 21:25:07

您可以强制渲染以获取内部结构,即

代码语言:javascript
复制
const agGridReactWrapper = component.find(AgGridReact);

expect(
  agGridReactWrapper.render()
  .find('div.ag-center-cols-viewport')
  .find('div.ag-row')
).toHaveLength(5);

这是在确保栅格已设置之后,请参见https://www.ag-grid.com/javascript-grid-testing-react/

不幸的是,这没有留下任何在DOM上模拟事件的方法:(

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57468090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档