【问题标题】:Jest test fail "Window is not defined"开玩笑测试失败“未定义窗口”
【发布时间】:2018-09-28 06:51:21
【问题描述】:

在我的反应应用程序中,我为快照测试配置了 jest 和酶。
我的一项测试因错误而失败:

ReferenceError {
   message: 'window is not defined',
}

我在函数中使用窗口(全局对象)并从包含窗口对象的测试文件中调用该函数,这会产生错误。

我试过怎么解决这个问题

"globals":{
   "window":true
}

在我的包 json 中,但仍然有这个问题。 我的测试脚本也在运行jsdom

【问题讨论】:

  • jsdom 中的其他关键字是否有效?访问例如 document 会引发任何错误还是只是 window
  • 你的测试脚本是什么样子的?你有没有试过这个“测试”:“react-scripts test --env=jsdom”????
  • @Reynicke 没有 jsdom 不起作用我也收到“文档未定义”错误
  • @Think-Twice 这些是我在包 json 中的测试脚本,我通过“yarn run test”"scripts":{ "testendpoints": "env-cmd ./.env.test.local ava -v", "testall": "yarn testendpoints && yarn testdom", "test": "REACT_APP_ENV=development yarn testall", } 运行测试

标签: javascript reactjs unit-testing jestjs enzyme


【解决方案1】:

似乎 JSDOM 未正确安装或以某种方式禁用。看看你是否可以在你的配置中找到类似的东西:

"testEnvironment": "node"

https://jestjs.io/docs/en/configuration.html#testenvironment-string

【讨论】:

  • 这解决了我的问题。我忘了在里面加了jest.config.js"testEnvironment": "node"
猜你喜欢
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 2018-02-13
  • 2018-06-02
  • 2020-08-19
  • 2017-11-19
  • 2019-09-25
  • 2018-02-26
相关资源
最近更新 更多