我正在使用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
有所区别吗?
答案 0 :(得分:1)
wrapper.find(SelectButton).at(1)
是从零开始的集合,如果集合包含零个或一个元素,则 .at(1)将返回一个空包装。 .at(0)应该可以。