Тестирование магазинов 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
, но я не уверен, что работает?