Javascript Jest simulate单击组件的一个实例,该实例可能会被渲染多次

Javascript Jest simulate单击组件的一个实例,该实例可能会被渲染多次,javascript,jestjs,Javascript,Jestjs,我试图测试单击按钮时是否正确调用了onClick函数。然而,在我的前端代码中有许多按钮都应该调用相同的函数 当前我的测试如下所示: function render(args, renderer = shallow) { const component = renderer(<MyComponent {...args} />); return { component, buttons: () => component.find("

我试图测试单击按钮时是否正确调用了onClick函数。然而,在我的前端代码中有许多按钮都应该调用相同的函数

当前我的测试如下所示:

function render(args, renderer = shallow) {
    const component = renderer(<MyComponent {...args} />);

    return {
      component,
      buttons: () => component.find(".button"),
    };
  }


  beforeEach(() => {
    myProps = {
      myFunction: jest.fn(),
    };
  });

  it("Should call myFunction when button is clicked", () => {
    const { buttons } = render(myProps);
    buttons().simulate("click");

    expect(myProps.myFunction).toHaveBeenCalledWith();
  });
但不幸的是,它似乎返回未定义的节点,而不是我所希望的第一个节点


当这些按钮没有任何唯一的类标识符时,我如何只指定其中一个按钮?

在我找到的文档中进行了深入研究后,我发现了
.first()
,它可以在这种情况下使用,而不是
[0]
,但可以获得相同的结果

buttons().first().simulate("click");
还有
.last()
.at(index)
在这种情况下都很有用


在对文档进行深入研究后,我找到了
.first()
,它可以在这种情况下使用,而不是
[0]
,但获得了相同的结果

buttons().first().simulate("click");
还有
.last()
.at(index)
在这种情况下都很有用


此问题是否已解决?@UKS是的,我可以用我在下面文档中找到的内容来解决此问题。此问题是否已解决?@UKS是的,我可以用我在下面文档中找到的内容来解决此问题