【问题标题】:How to setup jsdom when working with jest使用 jest 时如何设置 jsdom
【发布时间】:2017-04-19 15:23:06
【问题描述】:

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

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

提前致谢!

【问题讨论】:

    标签: javascript jestjs jsdom ava


    【解决方案1】:

    好问题。

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

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

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

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

    在测试/setup.js 中:

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

    【讨论】:

    • 我知道 testEnvironment 和默认值,但我正在寻找“setupTestFrameworkScriptFile”。谢谢!!
    • 还有一件事,不完全相关,你推荐哪个包?我必须有一条自定义消息,而 jest-expect 不提供此选项。
    • 如果你想包含一条消息,我推荐npmjs.com/package/expect
    • setupFilesAfterEnv 现在推荐。
    猜你喜欢
    • 2017-06-02
    • 2016-04-27
    • 2021-10-05
    • 1970-01-01
    • 2017-10-13
    • 2018-08-30
    • 2017-09-01
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多