在React组件中进行酶测试事件监听器

时间:2018-09-11 15:31:26

标签: javascript reactjs jestjs enzyme

这是我问的上一个问题Event listeners and refs in React 16的后续内容。我正在尝试实施一项测试,以确保resize事件已正确侦听并使用组件中的Top Level start 77976 Id Per_Router Prod_No Rout_No NULL 1 81253 77976 NULL 1 81235 77976 NULL 1 67907 77976 NULL 1 66772 77976 21202 2 NULL 77976 41978 1 NULL 77976 41979 1 NULL 77976 Sub-components of 81253 20373 11 NULL 81253 20377 1 NULL 81253 20379 1 NULL 81253 20388 4 NULL 81253 Sub-components of 81235 20265 1 NULL 81235 28957 1 NULL 81235 NULL 1 53755 81235 NULL 1 53788 81235 NULL 1 59516 81235 Sub-sub-components 53755 Sub-sub-components 53788 Sub-sub-components 59516 Sub-components of 67907 Sub-components of 66772 ... ... 函数进行处理。我有以下测试:

updateWidth

但是当我运行它时,出现以下错误:

  it(`should always listen to 'resize' event and handle it with 'updateWidth'`, () => {
    const map = {};
    window.addEventListener = jest.fn((event, callback) => {
      map[event] = callback;
    });

    const wrapper = mount(<Footer {...props} />);

    // simulate event
    map.resize();

    expect(wrapper.updateWidth).toHaveBeenCalled();
  });

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我不确定props是什么对象,但是如果它包含updateWidth方法,则您需要expect(wrapper.props().updateWidth).toHaveBeenCalled();或只是expect(props.updateWidth).toHaveBeenCalled();