这是我的__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吗?

谢谢你的帮助!

推荐答案

对我来说,这两种方法都有效

打包的.json文件添加测试脚本env标志

"scripts": {
   "test": "react-scripts test --env=jsdom"
}

使用Enzyme

 import { shallow } from 'enzyme';

 it('renders without crashing', () => {
  shallow(<App />);
 });

Reactjs相关问答推荐

过滤对象数组并通过迭代对象数组将属性放入新数组

替换谷歌 map api默认信息窗口与自定义

使用Reaction-Hook-Form时未激发React.js onBlur事件

NextJS如何正确保存添加到购物车中的产品会话

如何通过回调函数获取多个值?

如何使图像zoom 并移动到点击点

我如何在不被 destruct 的情况下将导航栏固定在顶部?

无法在下一个标头上使用 React hooks

获取类别和页面的参数

如何使用 React 获取表单中的所有值?

React router v5 仅在生产中不适用于嵌套路由

无法使axiosmockadapter正常工作

使用新数据更新时,React 不更新具有过滤功能的深层嵌套对象数组中的变量状态

如何在使用 React Router v6 将当前页面的状态传递给上一页的同时导航到上一页?

react - 警告:列表中的每个子元素都应该有一个独特的 keys props ,即使我已经设置了 keys

页面加载时不显示数组中的数据

react 事件顺序

如何在 JSX 中使用 -webkit- 前缀?

如何不旋转 mui 自动完成弹出图标?

理解 React 中的 PrevState