ReferenceError:sessionStorage未在jest单元测试用例中定义

问题描述 投票:4回答:1

我想在ReactJS中为一个动作编写jest单元测试用例,该动作正在使用会话存储,但是我收到的错误是sessionStorage没有定义。

任何解决方案如何处理?

reactjs jest
1个回答
6
投票

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

一个简单的解决方案是使用插件,如mock-local-storage包(受StackOverflow答案的启发)。它模仿localStorage(和sessionStorage)进行无头单元测试。只需安装它:

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

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

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

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

您也可以将代码放在文件中,并在setupTestFrameworkScriptFile下指定文件位置,而不是使用npm包。您的代码应该类似于this one

这是一个related threadthe solution的积分。

© www.soinside.com 2019 - 2024. All rights reserved.