如何在使用jest时设置jsdom

时间:2016-12-05 09:17:48

标签: javascript jestjs jsdom ava

我试图从AVA迁移到Jest。在AVA中,您可以设置ava.setup,在其中设置jsdom环境。例如,创建DOM结构并执行必要的polyfill(localStorage)。

我如何在Jest中实现这一目标?目前,我在每个测试套件中使用beforeEach,这并不是最佳解决方案。

提前致谢!

1 个答案:

答案 0 :(得分:21)

很棒的问题。

Jest实际上附带了jsdom并且已经配置了环境(您可以使用testEnvironment setting覆盖它。)

如果您需要设置更多环境方面,可以使用setupTestFrameworkScriptFile setting指向在所有测试运行之前执行的文件。

例如,如果您需要在所有测试的窗口中显示window.yourVar,则可以将其添加到package.json

"jest": {
    "setupTestFrameworkScriptFile": "tests/setup.js"
}

在tests / setup.js中:

Object.defineProperty(window, 'yourVar', { value: 'yourValue });