方法“simulate”旨在在 1 个节点上运行。找到 0 个

2023-12-20

我最近用 ThemeProvider 包装了我的组件进行测试。当我运行测试时,它抛出以下错误

'方法“simulate”应在 1 个节点上运行。 0 找到替代'

在包装之前它工作正常。我该如何解决这个问题?我在 GitHub 中发现了很多与此类似的问题,并且我尝试了所有这些方法,但仍然遇到相同的错误。

包装前的代码:

 test('handleSelect function called on option select', () => {
    const handleSelectSpy = sinon.spy();
    wrapper = mount( 
        <Dropdown handleSelect={handleSelectSpy} options={options} />
    );
    dropdown = wrapper.find('Dropdown');
    dropdown
      .find('InputBase')
      .find('[role="button"]')
      .simulate('click');
    expect(true).toBe(true);
  });
});

包装后的代码:

 test('handleSelect function called on option select', () => {
    const handleSelectSpy = sinon.spy();
    wrapper = mount(
      <ThemeProvider>
        <Dropdown handleSelect={handleSelectSpy} options={options} />
      </ThemeProvider>,
    );
    dropdown = wrapper.find('Dropdown');
    dropdown
      .find('InputBase')
      .find('[role="button"]')
      .simulate('click');
    expect(true).toBe(true);
  });
}); 

错误: Dropdown - 完整 DOM 渲染 › 在选项选择时调用 handleSelect 函数 方法“simulate”旨在在 1 个节点上运行。找到 0 个。


.find('InputBase')

如果这是一个组件类名/构造函数,则它应该不带引号:

.find(InputBase)

仅 CSS 选择器应在引号内使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方法“simulate”旨在在 1 个节点上运行。找到 0 个 的相关文章

随机推荐