问题描述
当我尝试在 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
。通过这种方式,您可以根据虚假或真实的身份验证方法设置令牌,这取决于您。