20

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

我如何在 Jest 中做到这一点?目前,我beforeEach在每个测试套件中都使用,这感觉不是最好的解决方案。

提前致谢!

4

1 回答 1

37

好问题。

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

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

例如,如果您需要window.yourVar在窗口上进行所有测试,您可以将其添加到您的package.json

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

在测试/setup.js 中:

Object.defineProperty(window, 'yourVar', { value: 'yourValue' });
于 2016-12-05T21:38:42.590 回答