reactjs - 如何使用 Jest 测试测试窗口对象

标签 reactjs jestjs

我正在尝试测试一个根据 window 对象中存在的值返回值的类。
window.test = 123;
我想将 window 对象的 test 属性模拟为 123 值以便能够正确测试。

我试过 Object.defineProperty ,改为使用 global ,但似乎没有任何效果。似乎是一个微不足道的问题,但无法在谷歌或其他地方找到答案。请指教。

最佳答案

万一window存在(即 Jest 与 JSDOM 一起运行,默认情况下完成)它应该是:

beforeEach(() => {
  window.test = 123;
});

afterEach(() => {
  delete window.test;
});

如果它不存在,它是:
beforeEach(() => {
  global.window = { test: 123 };
});

afterEach(() => {
  delete global.window;
});

取决于是否window在其他地方使用,将其备份到 beforeEach 中的临时变量可能会有所帮助并在 afterEach 中恢复.

关于reactjs - 如何使用 Jest 测试测试窗口对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52703217/

相关文章:

reactjs - Stripe 参数_invalid_integer

reactjs - webpack 开发服务器无法找到node_modules

reactjs - React-Testing 库未在快照中呈现 Material-UI 对话框

javascript - Vue test utils 观看测试

events - 测试事件是否正在通过 jest 运行

javascript - 由于使用 'addEventListener' 导入的脚本, enzyme 无法浅渲染

javascript - 如何用 Jest 测试 TypeScript 中的枚举列表是否包含所有字符串值?

javascript - 在按钮上点击打开 NavBar 的 react 方式

javascript - 如何在javascript中调整Base64图像的大小

javascript - 如何在 botpress ver 11.9.5 中自定义用户对话框?