如何解决 vue.js 中未定义的本地存储?

问题描述

当我尝试在 vue.js 中运行测试用例时,它显示 error 本地存储未定义,如何解决此问题,请帮助我解决此问题。

[登录.spec.js]

import  Login from '../../src/Pages/Login.vue';
import{shallowMount} from '@vue/test-utils';
describe('Login.vue',()=>{
    describe('When Loaded',()=>{
        it('has the required elements',()=>{
            const wrapper =shallowMount(Login);
            expect(wrapper.find('#input-username').exists()).toBe(false);
            expect(wrapper.find('#input-password').exists()).toBe(false);
        });
    });
});

[axios.js]

import axios from 'axios'

axios.defaults.baseURL=process.env.VUE_APP_AXIOS_URL
axios.defaults.headers.common['Authorization']='Bearer'+ localStorage.getItem('token');

export default class AxiosService{
   postData(url,data){
       return axios.post(url,data).then(response =>{
           return response;
       }).catch(error=>{
           return error;
       })
   }
}

解决方法

这可能是模拟您的 localStorage 的好方法: How do I deal with localStorage in jest tests?

基本上,有一个存储用于模拟 localStorage。通过这种方式,您可以根据虚假或真实的身份验证方法设置令牌,这取决于您。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...