首页 > 解决方案 > 反应测试,使用 screen.getAllByText 后如何选择按钮

问题描述

该组件呈现一个表格,每一行都会有一个“详细信息”按钮,我设法模拟了数据,目前只提供了两个“Fronts”。

我测试的下一部分是单击详细信息按钮...但我不知道如何

  it('should render without crashing', async () => {
const { getByText } = render(<ServiceFronts />, {
  wrapper
});

await new Promise((resolve) => setTimeout(resolve, 0));

expect(getByText('TEST FRONT 1')).toBeDefined();
expect(getByText('TEST FRONT 2')).toBeDefined();

const buttons = await screen.getAllByText('Details');
expect(buttons).toHaveLength(2);

以上所有通行证

//Now I want to click the first button.. 
fireEvent.click(buttons[0]);

//should fail because Ive navigated away
expect(getByText('TEST FRONT 2')).toBeDefined();

}); });

第二部分没有按预期工作,一切都还在通过

谢谢你的帮助

标签: reactjsjestjsreact-testing-library

解决方案


推荐阅读