web-dev-qa-db-ja.com

ウィンドウが定義されていないため、Jestテストが失敗する

私はReact/Reduxを学ぶ最先端のWeb開発を始めようとしています。

今、私はテストを実行することにこだわっています。何らかの理由でjestが失敗します

Task :frontend:test 
yarn jest v1.0.2
$ "/Users/gunnar/git/app.oakstair.se/frontend/node_modules/.bin/jest" 
FAIL src/containers/App/App.test.js
  ● Test suite failed to run

 ReferenceError: window is not defined

  at Object.<anonymous> (config/polyfills.js:18:1)
  at next (native)
  at process._tickCallback (internal/process/next_tick.js:109:7)

私はしばらくグーグルで成功していません...

This is my starting test.js

And this my App test code

31
Gunnar Eketrapp

Package.jsonにwindow like globalのようなものを追加します

"jest": {
  "verbose": true,
  "preset": "react-native",
  "setupFiles": ["./jest/setup.js"],
  "testRegex": "(/tests/.*|\\.(test|spec))\\.(ts|tsx|js)$",
  "transformIgnorePatterns": [
    "node_modules/(?!(jest-)?react-native|lottie-react-native)"
  ],
  "globals": {
    "window": {}
  }
}
48
Miguel Cardenas

私は同じ問題を抱えていましたが、グローバルを変更することがそれを行う方法だとは思いません。問題は、jest構成でtestEnvironmentnodeに設定する必要があったときにjsdomに設定していたためです。私にとって、この設定は、reactスターターアプリで定義されているpackage.jsonにありました。

39
JacksonHaenchen