class AgGridWrapper extends React.Component {
render() {
return <AgGridReact onCellClicked={this.onCellClicked.this(bind)}
}
onCellClicked= (event) = > {
event.setDataValue(newValue);
}
}
我有一个关于AgGridReact的包装器组件AgGridWrapper(AgGridReact是一个节点模块,有助于创建HTML网格(。在此示例中,当我单击 AgGrid 上的任何单元格时,它将更改单元格的值。
我想测试这个 onCellClicked 事件。 所以我做了以下工作。
const wrapper= shallow(<AgGridWrapper />);
const agGridReact = wrapper.find(AgGridReact);
const eventObject={};
agGridReact.simulate('cellClicked',eventObect);
我的目的是模拟cellClicked事件并检查单元格的值是否被更改。但是在这里我无法访问 agGridReact 的 setDataValue(( 方法。所以我无法模拟这个事件对象。
我在这里被刺了几天了。 而且我的印象是,从技术上讲,不可能测试此功能,因为我们无法访问 setDataValue。
对此有什么建议吗??
正如simulate
所做的没有什么不同,只是调用一个存在于on{propName}
下的函数。出于某种原因,这仅适用于标准事件,但最终与自己调用它没有什么不同:
const eventObject = {setDataValue: jest.fn()}
gGridReact.prop('cellClicked')(eventObect);
expect(eventObject).toHaveBeenCalled()