测试没有组件的Vuex商店

时间:2018-10-20 19:10:09

标签: vuex vue-test-utils

我一直在研究https://vue-test-utils.vuejs.org/guides/#testing-key-mouse-and-other-dom-events,以学习如何结合使用Jest和vue-test-utils来编写测试。但是,这些示例都使用shallowMount来安装组件,但是我想避免这种情况,因为我使用GUI测试来测试实际的组件。

但是,在没有该组件的情况下,我遇到了问题。在vue-test-utils的示例中,他们使用shallowMount注入商店,但是由于我没有这样做,所以无法访问我的商店,这意味着我的状态,获取器等在以下情况下均未定义测试。

我的商店测试文件myStore.spec.js

import { createLocalVue } from '@vue/test-utils';
import myStore from './myStore';
import Vuex from 'vuex';

const localVue = createLocalVue();

localVue.use(Vuex);

describe('myStore tests', () => {
  let actions;
  let getters;
  let store;

  beforeEach(() => {
    actions = {
      setInUse: jest.fn(),
    };

    getters = {
      isInUse: () => false,
    };

    store = new Vuex.Store({
      modules: {
        myStore: {
          state: {
            isInUse: false,
          },
          actions,
          getters: myStore.getters,
        },
      },
    });
  });

  it('example test', () => {
    actions.setInUse(true);
    expect(getters.isInUse(state)).toBeTruthy();
  });
});

运行此测试时出现的错误之一是:state is not defined

我要去哪里错了?我应该如何在测试中进入商店?理想情况下,我想将测试存储设置为与从myStore导入的存储相同,但是我不确定是否可以运行?

0 个答案:

没有答案