我正在使用Jest和酶来测试我的反应成分。测试之一如下所示:
import DropDown from './DropdDown';
import SelectButton from './SelectButton';
import { mount } from "enzyme";
describe('Test Dropdown component', () => {
it('Check if handleSubmit is called on click', () => {
const wrapper = mount(
<DropDown
data={dropdDownData}
/>);
expect(wrapper.contains(SelectButton)).toBe(true); // passes
wrapper.find(SelectButton).at(0).simulate('click');
})
})
运行以上测试时出现以下错误:
Method “simulate” is meant to be run on 1 node. 0 found instead.
如果
SelectButton
中存在wrapper
,那么为什么在下一条语句中找不到该节点?可能要注意,
DropDown
呈现SelectWrapper
,而后者又呈现SelectButton
。但这不应该与我使用mount
有所区别吗? 最佳答案
wrapper.find(SelectButton).at(1)
是从零开始的集合,如果集合包含零个或一个元素,.at(1)将返回一个空包装器。 .at(0)应该可以工作。