每当我尝试找到元素时,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
工作正常。