【问题标题】:Global beforeAll in Jest?Global beforeAll in Jest?
【发布时间】:2021-01-16 00:30:59
【问题描述】:

我需要使用 React 测试库和 Jest 在我的测试中模拟不同的窗口大小。

目前我必须在每个测试文件中都有这个beforeAll

import matchMediaPolyfill from 'mq-polyfill';

beforeAll(() => {
  matchMediaPolyfill(window)
  window.resizeTo = function resizeTo(width, height) {
    Object.assign(this, {
      innerWidth: width,
      innerHeight: height,
      outerWidth: width,
      outerHeight: height,
    }).dispatchEvent(new this.Event('resize'))
  }
})

我是这样使用的:

it('does something at small screen sizes', async () => {
  window.resizeTo(320, 800);
  // actual test here

我可以有一个全局的beforeAll 来应用于我项目中的每个测试文件吗?

文档提到globalsetuphttps://jestjs.io/docs/en/configuration#globalsetup-string

但是它会出错,因为它无法识别 beforeAll 函数。在我看来,该选项用于设置环境但不向测试文件添加内容?

【问题讨论】:

    标签: jestjs


    【解决方案1】:

    globalSetup 在另一个进程中运行,无法从测试范围访问beforeAll 或其他变量。它用于在任何测试开始之前进行的初始化,例如设置服务器,如文档所示。

    在测试过程中运行的是setupFilesbeforeAll应该在Jest环境初始化后执行,所以应该移动到setupFilesAfterEnv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 2021-05-09
      • 2023-03-25
      • 1970-01-01
      • 2022-12-02
      • 2022-12-27
      • 2018-01-03
      • 2021-04-05
      相关资源
      最近更新 更多