共同使用 enzyme 與 Jest

設定 Jest

若要使用設定檔設定 Enzyme 和轉接器(如 安裝文件 中所述)與 Jest 共同執行,請將設定檔(請至 Jest 文件 查看設定檔可能的位置)中的 setupFilesAfterEnv(之前稱為 setupTestFrameworkScriptFile)字串設定為 <rootDir> 和設定檔路徑。

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

Jest 版本 15 及更新版本

從版本 15 開始,Jest 已 不再預設模擬模組。因此,您不再需要為 Jest 新增任何特殊設定,即可與 enzyme 搭配使用。

如同 Jest 文件 中建議,安裝 Jest 及其 Babel 整合。安裝 enzyme。然後,只需在測試檔案頂端使用 require/import 即可載入 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 一起使用,您可能需要取消模擬 更多模組