我试图从AVA迁移到Jest。在AVA中,您可以设置ava.setup
,在其中设置jsdom
环境。例如,创建DOM结构并执行必要的polyfill(localStorage)。
我如何在Jest中实现这一目标?目前,我在每个测试套件中使用beforeEach
,这并不是最佳解决方案。
提前致谢!
答案 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 });