Got TypeError: expect(...).toBeInTheDocument is not a function even after proper setup
Got TypeError: expect(...).toBeInTheDocument is not a function even after proper setup
我使用 Create React App 并已在 src/setupTests.js 上声明:
import '@testing-library/jest-dom';
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
但是每次我在测试文件上使用 expect(anything).toBeInTheDocument()
时,当 运行 测试时我得到:
TypeError: expect(...).toBeInTheDocument is not a function
为了确保 setupTests.js 实际上是 运行,我尝试在测试文件上使用 enzyme shallow 并且它有效。那么jest-dom到底有什么问题,如何解决呢?
解决方法:
import '@testing-library/jest-dom/extend-expect';
在 src/setupTests.js
在您的jest.config.js
中添加更容易
module.exports = {
...,
"setupFilesAfterEnv": [
"<rootDir>/jest.setup.js"
]
}
并使用内容
创建jest.setup.js
import '@testing-library/jest-dom'
这样您就不必在每个测试文件中导入笑话-dom
我使用 Create React App 并已在 src/setupTests.js 上声明:
import '@testing-library/jest-dom';
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
但是每次我在测试文件上使用 expect(anything).toBeInTheDocument()
时,当 运行 测试时我得到:
TypeError: expect(...).toBeInTheDocument is not a function
为了确保 setupTests.js 实际上是 运行,我尝试在测试文件上使用 enzyme shallow 并且它有效。那么jest-dom到底有什么问题,如何解决呢?
解决方法:
import '@testing-library/jest-dom/extend-expect';
在 src/setupTests.js
在您的jest.config.js
module.exports = {
...,
"setupFilesAfterEnv": [
"<rootDir>/jest.setup.js"
]
}
并使用内容
创建jest.setup.js
import '@testing-library/jest-dom'
这样您就不必在每个测试文件中导入笑话-dom