Javascript 单击模态测试中的事件
正在尝试对以下代码运行测试,但找不到节点。正在对ReactJS使用jest和EzymeJavascript 单击模态测试中的事件,javascript,reactjs,jestjs,enzyme,Javascript,Reactjs,Jestjs,Enzyme,正在尝试对以下代码运行测试,但找不到节点。正在对ReactJS使用jest和Ezyme render () { return ( this.state.permissionsLoaded ? this.state.localPermissions[globals.UI_DATASOURCEDESIGNER] ? this.state.datasourcePermissionsLoaded ? this.state.allowCurrentDatasource ?
render () {
return (
this.state.permissionsLoaded ?
this.state.localPermissions[globals.UI_DATASOURCEDESIGNER] ?
this.state.datasourcePermissionsLoaded ?
this.state.allowCurrentDatasource ?
<div>
<Modal isOpen={this.state.addRequestModalOpen} style={shareModal}>
<div title="Close Window Without Saving" className="sidemodal_addnew_x" onClick={() => {this.closeAddModal()}}><FontAwesome name='xbutton' className='fa-times' /></div>
看起来你正在试图找到一个节点,如果你提到的所有状态变量都是真的,那么这个节点将被有条件地呈现,而它们中没有一个是真的。实际上,你正在将它们全部设置为false,并提前更新包装器。这意味着找不到可用于模拟单击的.sidemodal_addnew_x,因此您会收到该错误消息 如果您想测试该组件是否存在,可以执行以下操作:
expect(wrapper.find('Datasource').find('.sidemodal_addnew_x').exists()).to.equal(false);
如果确实要测试单击,请确保组件获取。sidemodal_addnew_x通过将状态变量设置为true来呈现:
it("Test Click event on Close Window Without Saving", (done) => {
baseProps.onClick.mockClear();
wrapper.find('Datasource').setState({
permissionsLoaded:true,
localPermissions:true,
datasourcePermissionsLoaded:true,
allowCurrentDatasource:true,
addRequestModalOpen:true,
}, () => {
wrapper.update();
wrapper.find('Datasource').find('.sidemodal_addnew_x').simulate('click');
done();
});
});
但我怎样才能测试一个点击事件呢?例如,组件的存在运行良好,onclick并没有。找不到任何节点。找到onclick的原因是什么?@user9191您可以更新原始帖子吗?您是否将状态设置为true?已更新。仍然找不到节点。当我运行console.logwrapper.debug时,我看不到其中的任何模式内容
expect(wrapper.find('Datasource').find('.sidemodal_addnew_x').exists()).to.equal(false);
it("Test Click event on Close Window Without Saving", (done) => {
baseProps.onClick.mockClear();
wrapper.find('Datasource').setState({
permissionsLoaded:true,
localPermissions:true,
datasourcePermissionsLoaded:true,
allowCurrentDatasource:true,
addRequestModalOpen:true,
}, () => {
wrapper.update();
wrapper.find('Datasource').find('.sidemodal_addnew_x').simulate('click');
done();
});
});