Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击模态测试中的事件_Javascript_Reactjs_Jestjs_Enzyme - Fatal编程技术网

Javascript 单击模态测试中的事件

Javascript 单击模态测试中的事件,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 ?

正在尝试对以下代码运行测试,但找不到节点。正在对ReactJS使用jest和Ezyme

 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();
    });
});