这是我的__tests__/App.js
文件:
import React from 'react';
import ReactDOM from 'react-dom';
import App from '../src/containers/App';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<App />, div);
});
// sanity check
it('one is one', () => {
expect(1).toEqual(1)
});
这是我运行yarn test
时得到的输出:
FAIL __tests__/App.js
● renders without crashing
ReferenceError: document is not defined
at Object.<anonymous>.it (__tests__/App.js:6:15)
✕ renders without crashing (1ms)
✓ one is one
Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 passed, 2 total
Snapshots: 0 total
Time: 0.128s, estimated 1s
Ran all test suites related to changed files.
我是否需要导入另一个模块才能使document
在此处可用?
谢谢你的帮助!
8条答案
按热度按时间zvms9eto1#
对我来说,这两种方法都有效
在package.json文件中添加测试脚本env标志
使用酶
2ekbmq322#
我将
jest.config.js
中的值设置为下面的值,它工作了:w46czmvw3#
将注解放在单元测试源代码的顶部
模拟文档和窗口的信号。
lztngnrs4#
如果使用jest,则在package.json中
2exbekwf5#
我刚刚遇到这个问题,2021年9月。我正在学习测试React,我解决了这个问题,进入节点模块文件夹。在该文件夹有一个jest文件夹。在jest文件夹有一个package.json文件。在该package.json文件中,我插入了一个东西。类似于上面提到的人。
包.json文件
"testEnvironment": "jsdom"
我知道一般我不应该编辑node_modules文件夹,但只是为了继续学习,这将不得不做。
我不知道对于一个更严肃的项目是否需要一些其他的解决办法。
iovurdzv6#
如果您使用的是
create-react-app
,请确保运行yarn test
而不是yarn jest
或其他命令。v8wbuo2f7#
把这个放在index.test.js(或者测试文件)的顶部,不要放在中间或者末尾。
/***@ jest环境jsdom */
bqjvbblv8#
在我的案例中,解决方案是:
1.将字段
testEnvironment: "jsdom"
添加到jest.config.js
npm i jest-environment-jsdom -D