我正在尝试在我的应用程序上测试Vuex存储模块,但它不断返回
TypeError: Cannot read property 'getters' of undefined
不管我尝试什么。
请帮忙。这是代码:
store / index.ts:
import Vuex from 'vuex';
import auth from './auth';
Vue.use(Vuex);
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {
auth,
},
});
store / auth.ts:
export default {
state: {
isLoggedIn: getKey(),
},
namespaced: true,
mutations: {
setLoginState(state: any, isLoggedIn: boolean) {
state.isLoggedIn = isLoggedIn;
},
},
actions: {
// Stuff
},
};
存储/ __测试__ / auth.ts:
import auth from '../auth';
describe('Auth.ts', () => {
describe('Mutations', () => {
test('setLoginState sets isLoggedIn correctly', () => {
const state = {
isLoggedIn: false,
};
auth.mutations.setLoginState(state, true);
expect(state.isLoggedIn).toBe(true);
});
});
});
使用的软件包:
"vue": "^2.5.22",
"vuex": "^3.1.0",
"webpack": "^4.29.0"
"jest": "^23.6.0",
"ts-jest": "^23.10.5",
答案 0 :(得分:0)
我发现了问题。
问题是auth.ts正在导入axios实例,但没有被模拟。删除需要axios调用的操作或添加jest.mock('API_PATH', jest.fn);
进行测试即可解决此问题。