【问题标题】:URLSearchParams is not defined error when running tests with jest使用 jest 运行测试时 URLSearchParams 未定义错误
【发布时间】:2018-05-29 03:21:04
【问题描述】:

在使用 Jest 运行测试时如何使用 URLSearchParams ?

当我这样做时,我得到了

ReferenceError: URLSearchParams is not defined

【问题讨论】:

    标签: javascript reactjs jasmine jestjs


    【解决方案1】:

    您只需升级您的react-scripts 版本,它使用包含使用 URLSearchParams 功能的最新版 Jest。

    您可以在此处阅读更多信息:https://facebook.github.io/jest/blog/2017/12/18/jest-22.html#good-bye-node-4-welcome-jsdom-11

    【讨论】:

    • 好的,支持 URLSearchParams 的最旧版本是什么,我们如何升级到它?
    • @MegaMatt 您已经找到解决方案了吗?我正在运行 react-scripts 1.1.4,这似乎是最新版本,但我仍然收到此错误。
    • react-scripts 1.14 是最新的主要版本,仍然使用 Jest 20。您可以通过查看 node_modules 文件夹的 jest 文件夹中的 package.json 文件来确认这一点。 Jest 22 中添加了对 URLSearchParams 的支持。所以答案是:除非您想手动更改 react-scripts 正在使用的 Jest 版本(不推荐),否则您根本无法在测试中使用 URLSearchParams .在更新使用 Jest 22+ 的 react-scripts 之前,我修改了我的测试以使用 query-string npm 包而不是 URLSearchParams。
    【解决方案2】:

    您是否将您的 jest 环境设置为配置文件中的默认值以外的其他内容? 您必须运行将 jest 环境设置为 jsdom,以便可以使用常见的浏览器特定 JavaScript 组件

    jest --env=jsdom
    

    Configuring Jest

    【讨论】:

    • @Lev 你能用任何配置文件更新你的答案,如果有的话,还有你失败的测试样本来帮助人们解决你的错误
    猜你喜欢
    • 2017-07-20
    • 2021-11-30
    • 2021-02-07
    • 2016-06-04
    • 2021-12-24
    • 2017-11-12
    • 2019-01-19
    • 2018-11-04
    • 1970-01-01
    相关资源
    最近更新 更多