使用 Enzyme 与 Jest

使用 Jest 配置

要运行设置文件以配置 Enzyme 和 Adapter(如 安装文档 中所示)与 Jest,请在您的配置文件中设置 setupFilesAfterEnv(以前为 setupTestFrameworkScriptFile)(查看 Jest 文档 以了解该配置文件的可能位置)为字面上的字符串 <rootDir> 和您的设置文件的路径。

{
  "jest": {
    "setupFilesAfterEnv": ["<rootDir>src/setupTests.js"]
  }
}

Jest 版本 15 及更高版本

从版本 15 开始,Jest 不再默认模拟模块。因此,您不再需要添加任何特殊配置来让 Jest 与 enzyme 一起使用。

按照Jest 文档中的建议,安装 Jest 及其 Babel 集成。安装 enzyme。然后,只需在测试文件顶部引入 React、enzyme 函数和您的模块。

import React from 'react';
import { shallow, mount, render } from 'enzyme';

import Foo from '../Foo';

您**不需要**包含 Jest 自身的渲染器,除非您只想将其用于 Jest 快照测试。

Jest 15+ 版本的示例项目

Jest 15 版本之前的版本

如果您使用的是 Jest 0.9 – 14.0 与 enzyme,并且使用 Jest 的自动模拟功能,则需要在您的 package.json 中将 react 和 enzyme 标记为未模拟。

package.json:

{
  "jest": {
    "unmockedModulePathPatterns": [
      "node_modules/react/",
      "node_modules/enzyme/"
    ]
  }
}

如果您使用的是 Jest 的早期版本以及 npm3,您可能需要取消模拟更多模块