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