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