reactjs - 在 react-testing-library 中使用“screen”找不到任何东西
问题描述
每当我尝试找到元素时,expect(screen.getByRole("heading", { level: 2 })).toBeInTheDocument();
我都会收到消息:
TestingLibraryElementError: Unable to find an accessible element with the role "heading"
但是,如果我这样做
const { getByRole } = render(<NewCommentForm />);
expect(getByRole("heading", { level: 2 })).toBeInTheDocument();
有用。
这是我的 package.json 文件:
{
"name": "client",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:3001/",
"dependencies": {
"@testing-library/jest-dom": "^5.11.5",
"@testing-library/user-event": "^7.1.2",
"axios": "^0.21.1",
"jest-axe": "^4.0.0",
"moment": "^2.29.0",
"prettier": "^2.2.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@testing-library/dom": "^7.28.1",
"@testing-library/react": "^11.2.5"
}
}
和setupTests.js
import "@testing-library/jest-dom/extend-expect";
你能告诉我为什么screen
在调用方法时不能正常工作getByRole
吗?似乎screen.getByText
工作正常。
解决方案
推荐阅读
- javascript - 组件正在将文本类型的受控输入更改为不受控制
- wordpress - 未定义索引:inc_social_context
- database - 编写 ALTER DATABASE CONTROLFILE 命令时数据文件会损坏吗?
- docker - 如何从可流动的 docker 映像中禁用数据库迁移(liquibase 迁移)?
- c# - 返回带有 asp.net core api 错误的自定义对象
- dialogflow-es - 如何使用 Dialogflow 将 3rd 方 API 连接到 Google Actions?
- python - Python:在游戏中添加计数器
- python-2.7 - 具有有限权限的 xlsxwriter 工作表保护功能
- highcharts - highcharts 第一个和最后一个类别宽度
- javascript - new Function(...).call() 在 chrome 中创建内存泄漏