酶模拟返回零节点

时间:2019-09-09 11:16:40

标签: javascript reactjs jestjs enzyme

我正在使用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有所区别吗?

1 个答案:

答案 0 :(得分:1)

wrapper.find(SelectButton).at(1)

是从零开始的集合,如果集合包含零个或一个元素,则 .at(1)将返回一个空包装。 .at(0)应该可以。