jest SecurityError: localStorage is not available for opaque origins

jest SecurityError: localStorage is not available for opaque origins

最近要为公司的一个项目添加单元测试,选择了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 就行了

你可能感兴趣的:(测试)