Тестирование магазинов Vuex без компонентов

Я просматривал https://vue-test-utils.vuejs.org/guides/, чтобы узнать, как писать тесты с использованием 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 ответов

Другие вопросы по тегам