使用 jest 时如何设置 jsdom
How to setup jsdom when working with jest
我正在尝试从 AVA 迁移到 Jest。在AVA中可以设置ava.setup
,其中设置jsdom
环境。例如,创建 DOM 结构并执行必要的 polyfills (localStorage)。
我如何在 Jest 中完成它?目前,我在每个测试套件中都使用 beforeEach
,感觉这不是最佳解决方案。
提前致谢!
好问题。
Jest 实际上附带 jsdom
并且环境已经配置。您可以使用 testEnvironment
setting.
覆盖它
如果您需要设置环境的更多方面,您可以使用 setupTestFrameworkScriptFile
setting 指向在所有测试 运行 之前执行的文件。
例如,如果您需要 window.yourVar
在 window 上用于所有测试,您可以将其添加到 package.json
:
"jest": {
"setupTestFrameworkScriptFile": "tests/setup.js"
}
并在 tests/setup.js:
Object.defineProperty(window, 'yourVar', { value: 'yourValue' });
我正在尝试从 AVA 迁移到 Jest。在AVA中可以设置ava.setup
,其中设置jsdom
环境。例如,创建 DOM 结构并执行必要的 polyfills (localStorage)。
我如何在 Jest 中完成它?目前,我在每个测试套件中都使用 beforeEach
,感觉这不是最佳解决方案。
提前致谢!
好问题。
Jest 实际上附带 jsdom
并且环境已经配置。您可以使用 testEnvironment
setting.
如果您需要设置环境的更多方面,您可以使用 setupTestFrameworkScriptFile
setting 指向在所有测试 运行 之前执行的文件。
例如,如果您需要 window.yourVar
在 window 上用于所有测试,您可以将其添加到 package.json
:
"jest": {
"setupTestFrameworkScriptFile": "tests/setup.js"
}
并在 tests/setup.js:
Object.defineProperty(window, 'yourVar', { value: 'yourValue' });