我想在ReactJS中为一个动作编写jest单元测试用例,该动作正在使用会话存储,但是我收到的错误是sessionStorage没有定义。
任何解决方案如何处理?
要解决此问题,您需要模拟会话存储。
一个简单的解决方案是使用插件,如mock-local-storage包(受StackOverflow答案的启发)。它模仿localStorage(和sessionStorage)进行无头单元测试。只需安装它:
npm install mock-local-storage --save-dev
然后在你,package.json
在“jest”配置下添加:
...
"jest": {
...
"setupTestFrameworkScriptFile": "mock-local-storage"
}
...
这将为所有测试用例添加模拟的localStorage
和sessionStorage
,您不需要在每个文件中进行更改。
您也可以将代码放在文件中,并在setupTestFrameworkScriptFile下指定文件位置,而不是使用npm包。您的代码应该类似于this one。
这是一个related thread。 the solution的积分。