reactjs 未在表行上激发userEvent

fnvucqvd  于 2022-12-18  发布在  React
关注(0)|答案(1)|浏览(150)

我有一个表组件,我在其中添加了一个onClick处理程序到所有的tr。单击处理程序在浏览器中工作正常。当使用测试库编写测试时,我只能使用fireEvent使其工作。当我尝试用userEvent替换它时,单击处理程序没有被调用。我'我知道在tr中添加click处理程序存在一些可访问性问题,但是我想了解为什么使用userEvent时不触发它

render( <Table />)
const row = screen.queryAllByTitle('Show details')[0]
userEvent.click(row)
expect(screen.queryByText('Details')).toBeTruthy()

和行:

<tr
  title="Show details"
  onClick={showDetails}
  role="button"
>
  <td>....
</tr>
r6l8ljro

r6l8ljro1#

userEvent是异步的。如果要使用useEvent,可以进行以下更改

test('test row onClick', async () => {
  render( <Table />)
  const row = screen.queryAllByTitle('Show details')[0]
  await userEvent.click(row)
  expect(screen.queryByText('Details')).toBeTruthy()
})

相关问题