最近要为公司的一个项目添加单元测试,选择了jest框架, 但是在quickstart的时候就遇到了一个错误,错误信息如标题所示,localstorage是浏览器的东西,但是我这里的环境是node, 原因很明显了。看看官方文档怎么解释
This option sets the URL for the jsdom environment. It is reflected in properties such as location.href.
这个字段是设置jsdom的环境,它会被映射到location.href上。现在我的环境是node,为了避免这个错误,可以设置testURL为http://localhost
jest的这种方法我觉得不太明智,至少应该以某种方式显示的提醒你testURL问题。而不是这样说localStorage is not available for opaque origins
这样的错误
jest
的时候,还可以用
jest --init
来创建
jest.config.js
, 这是jest的配置文件,当然,我们也可以在
package.json
里添加
jest
字段来进行配置。
✔ Would you like to use Jest when running "test" script in "package.json"? … yes
? Choose the test environment that will be used for testing › - Use arrow-keys. Return to submit.
❯ node
jsdom (browser-like)
这里可以选择node 还是 jsdom,jsdom环境是一个类似于浏览器的环境,这里的配置是映射到jest.config.js中的testEnvironment
字段的,这个字段可以选择node
或者是jsdom
两个选项
因为默认是jsdom
,所以这里会出现这种错误,解决方法就是更改一下testEnvironment
的字段为node
就行了