Javascript 如何在vue测试中更改vuex getter值?
我有一个简单的测试:Javascript 如何在vue测试中更改vuex getter值?,javascript,vue.js,jestjs,vue-test-utils,Javascript,Vue.js,Jestjs,Vue Test Utils,我有一个简单的测试: describe('App', () => { let store; beforeEach(() => { store = new Vuex.Store({ modules: { auth: { namespaced: true, getters: {
describe('App', () => {
let store;
beforeEach(() => {
store = new Vuex.Store({
modules: {
auth: {
namespaced: true,
getters: {
isLoggedIn: () => true,
}
}
}
});
});
test('App hides navbar when user is logged in', () => {
const wrapper = shallowMount(App, { store, localVue });
expect(wrapper.contains(Nav)).toBe(false);
// store.getters['auth/isLoggedIn'] = () => false; // Not possible
});
});
但我无法更改getter值,我在控制台中看到此错误:
TypeError:无法设置#的属性auth/isLoggedIn,该属性只有一个getter
如何在测试中设置getter值?根据
希望这有帮助。请参阅下面提到的代码。这就是修改getter值的方法
let oldValue = store.getters['auth/isLoggedIn']
console.log('oldValue', oldValue) // oldValue = true
expect(store.getters['auth/isLoggedIn']).toBe(true)
store = {
getters: {
'auth/isLoggedIn': !oldValue
}
}
let newValue = store.getters['auth/isLoggedIn']
console.log('newValue', newValue) //newValue = false
expect(store.getters['auth/isLoggedIn']).toBe(false)