react-testing-library中的选择器,可以通过getAllByText检索多个匹配项

时间:2019-06-20 21:23:58

标签: react-testing-library

此刻,我正在这样做以拉回表的所有行:

const { getByTestId } = renderWithRouter(businessWithContext);

const firstTableRow = await waitForElement(() => getByTestId("row-1-name"));
const secondTableRow = await waitForElement(() => getByTestId("row-2-name"));

expect(firstTableRow.textContent).toBe("test1");
expect(secondTableRow.textContent).toBe("test2");

我宁愿做这样的事情:

const rows = await waitForElement(() => getAllByText(/^row-*/gi));

但是我得到这个错误:

  

找不到带有以下文本的元素:/ ^ row-* / gi。这可能是因为文本被多个元素分解了。在这种情况下,您可以为文本匹配器提供一个功能,以使匹配器更加灵活。

1 个答案:

答案 0 :(得分:0)

您正在使用getAllByText,但您确实想按data-testid进行查询。这将起作用:

getAllByTestId(/^row-*/)