小编and*_*dak的帖子

如何在 React 测试库中获取带有图像的按钮

我们可以在 React 测试库中使用的最佳选择器是getByRole(). 这很好,因为我们可以通过它的角色和可访问性名称来选择我们的节点。

如果我们有一个渲染组件,其中有多个按钮 - 所以我不能只使用getByRole('button')- 并且按钮没有文本,这意味着它没有可访问的名称,而是我们有一个图像,我该怎么办关于选择?

我知道图像的可访问名称来自alt属性,我也知道我可以使用替代方法,例如data-testid,但是getByRole如果有机会,我更愿意使用,因此我的测试类似于我的软件的使用方式。

<Button onClick{() => void}>
 <img
  src={"foo"}
  alt={"alt text"}
/>
<Button/>
Run Code Online (Sandbox Code Playgroud)

getByRole('button')会抛出一个错误,因为包装组件上会有多个按钮 getAllByRole('button')将返回一个包含所有按钮的数组,但是我只想要带有图像的一个

我试过了,getByRole('button', {name: "alt text"})但这不起作用,它有点道理,因为它是一个不同的节点。

如果有一种合乎逻辑的方法来使用它,getByRole或者我必须放弃并求助于诸如 data-testid 之类的东西,有什么想法吗?

谢谢!

javascript reactjs react-testing-library

6
推荐指数
1
解决办法
4868
查看次数