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

vin*_*nod 4 reactjs jestjs

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

任何解决方案如何处理?

Kal*_*sev 6

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

一个简单的解决方案是使用一个插件,例如模拟本地存储软件包(受StackOverflow答案启发)。它为无头单元测试模拟了localStorage(和sessionStorage)。只需安装:

npm install mock-local-storage --save-dev
Run Code Online (Sandbox Code Playgroud)

然后在您package.json的“笑话”配置下添加:

...
"jest": {
  ...
  "setupTestFrameworkScriptFile": "mock-local-storage"
}
...
Run Code Online (Sandbox Code Playgroud)

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

除了使用npm软件包,您还可以将代码放入文件中,并在setupTestFrameworkScriptFile下在此处指定文件位置。您的代码应与类似。

这是一个相关的主题解决方案的功劳。