酶找到并选择元素的第一个实例

时间:2017-09-28 10:53:30

标签: javascript reactjs enzyme

我正试图在三个盒子中的第一个上点击一下。

我的反应代码如下所示

const Boxes = (props) => {

   return (
     <div className="container">
        <div onClick={props.showMessage} className="box">One</div>
        <div onClick={props.showMessage} className="box">Two</div>
        <div onClick={props.showMessage} className="box">Three</div>
     </div>
   );
}

然后我的jest代码看起来像这样

it("shows a message if Box One is selected", () => {
    let wrapper = shallow(
        <Boxes
            {...props}
        />
    );

    wrapper.find('.box').simulate('click');
    expect(wrapper.contains('Box One Clicked')).toEqual(true);

});

这给了我以下错误消息

  

方法“模拟”仅用于在单个节点上运行。 3发现   代替。

然后,当我尝试以下操作时,它也无法正常工作,测试失败。

wrapper.find('.box').first().simulate('click');
expect(wrapper.contains('Box One Clicked')).toEqual(true);

1 个答案:

答案 0 :(得分:2)

有多个.box项,你必须选择其中一项,比如第一项:

wrapper.find('.box').at(0).simulate('click');