Получатель Mock Vuex в js-файле - TypeError: Невозможно установить свойство selectedCar из # <Object>, которое имеет только получатель - PullRequest
0 голосов
/ 09 июня 2019

Я использую геттер Vuex, чтобы вернуть мне свойство, и тестирование геттера работает нормально.Теперь я хочу вызвать этот метод получения в js-файле, чтобы использовать возвращаемое значение в его функции, но если я установил макет этого метода получения, я всегда получаю эту ошибку: "TypeError: Невозможно установить свойство selectedCar of #, которое имеет толькоgetter "

Я также пытался заменить состояние store.replaceState и использовать шпиона с mockImplementation, который возвращает« test », но затем он говорит мне:« Не удается шпионить свойство selectedCar, потому что этоне функция; вместо нее указана строка "

import { store } from "../../store/store";

const helpers = {
    getArray() {
        const selectedCar = store.getters.selectedCar;
    }
};

export default helpers;

Проверка:

import helpers from "../helpers";
import { store } from "../../../store/store";

describe("getArray", () => {
    test("should get currentCar from store", () => {
        store.getters.selectedCar = jest.fn(() => "test");

        helpers.getArray();

        expect(store.getters.selectedCar).toBeCalled();
    });
});

Хранение:

import Vue from "vue";
import Vuex from "vuex";
import mutations from "./mutations";
import getters from "./getters";

Vue.use(Vuex);

export const store = new Vuex.Store({
    state: {
        sessionData: null,
    },
    mutations,
    getters
});

Получатели:

export default {
    selectedCar: (state) => {
        // const car = logic to retrieve the selectedCar
        return car;
    }
};
...