【问题标题】:ReferenceError: sessionStorage is not defined in jest unit test caseReferenceError:在开玩笑的单元测试用例中没有定义 sessionStorage
【发布时间】:2017-12-21 14:14:04
【问题描述】:

我想为 ReactJS 中使用会话存储的一项操作编写开玩笑的单元测试用例,但我收到未定义 sessionStorage 的错误。

有什么解决办法吗?

【问题讨论】:

    标签: reactjs jestjs


    【解决方案1】:

    要解决这个问题,您需要模拟会话存储。

    一个简单的解决方案是使用插件,例如 mock-local-storage 包(灵感来自 StackOverflow 答案)。它为无头单元测试模拟 localStorage(和 sessionStorage)。只需安装它:

    npm install mock-local-storage --save-dev
    

    然后在你,package.json“jest”配置下添加:

    ...
    "jest": {
      ...
      "setupTestFrameworkScriptFile": "mock-local-storage"
    }
    ...
    

    这将为所有测试用例添加模拟的localStoragesessionStorage,您不需要更改每个文件。

    除了使用 npm 包之外,您还可以将代码放在一个文件中,并在 setupTestFrameworkScriptFile 下指定文件位置。您的代码应该类似于this one

    这是related threadthe solution 的积分。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 1970-01-01
      • 2021-09-17
      • 2016-03-03
      • 2019-09-25
      相关资源
      最近更新 更多