为什么 React-Testing-Library / Jest 向后接收 DOM 输入?

nar*_*ler 5 dom reactjs jestjs react-testing-library

测试表单时,我使用 userEvent 在文本框中键入“hello”,然后在使用 toHaveValue() 直接测试所述文本框的值时,它向后返回字符串...

 render(<Form />)
 userEvent.clear(screen.getAllByRole('textbox')[0])
 userEvent.type(screen.getAllByRole('textbox')[0], 'hello')
 expect(screen.getAllByRole('textbox')[0]).toHaveValue('hello')
Run Code Online (Sandbox Code Playgroud)

运行纱线测试后控制台中的错误: 在此处输入图片说明

包版本:

    "react-scripts": "^3.4.3",
    "@testing-library/jest-dom": "^5.14.1",
    "@testing-library/react": "^12.0.0",
    "@testing-library/user-event": "^13.1.9",
Run Code Online (Sandbox Code Playgroud)

小智 2

我也经历过同样的事情,我之前使用的是jest ^24.8.0,升级到最新版(jest ^27.2.1)后问题得到解决。