我最近用 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(使用前将#替换为@)