Vuex + Jest测试失败并出现TypeError

时间:2019-01-22 00:10:24

标签: typescript vue.js jestjs vuex

我正在尝试在我的应用程序上测试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",

1 个答案:

答案 0 :(得分:0)

我发现了问题。 问题是auth.ts正在导入axios实例,但没有被模拟。删除需要axios调用的操作或添加jest.mock('API_PATH', jest.fn); 进行测试即可解决此问题。