Попробовать юнит-тестирование магазина, как заставить его работать? - PullRequest
1 голос
/ 16 апреля 2019

У меня есть файл store.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export const mutations = {
  increment: state => state.count++,
  Changeloading(state, status) { state.loading = status },
  ChangeUserGroup(state, newGroup) { state.userGroup = newGroup; },
  ChangeOriginalRole(state, newRole) { state.originalRole = newRole; }
}
export default new Vuex.Store({
  state: {
    count: 0,
    loading: false, //header, TeamLead, TeamMember
    listUserGroup: [],
    userRole: "",
    originalRole: "",
    userGroup: {}
  },
  mutations,
 ...
})

В моем тестовом файле store.spec.js

import { expect } from 'chai'
import mutations from '@/store'

// destructure assign `mutations`
const { increment } = mutations

describe('mutations', () => {
  it('INCREMENT', () => {
    // mock state
    const state = { count: 0 }
    // apply mutation
    increment(state)
    // assert result
    expect(state.count).to.equal(1)
  })
})

Вот результат, который я получаю:

мутация 1) INCREMENT

0 прохождение (75мс) 1 ошибка

1) мутации INCREMENT: Ошибка типа: приращение не является функцией

в Context.increment (dist \ webpack: \ tests \ unit \ store.spec.js: 13: 5)

РЕДАКТИРОВАТЬ (16.04.2009)

Я иду еще на один шаг. Я увидел здесь, что я должен «экспортировать» все компоненты в моем store.js, например:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const mutations = {...};

export const state = {...};

export const actions = {...};

export const getters = {...};

export default new Vuex.Store({
  state,
  mutations,
  actions,
  getters
});

Но даже в этом случае ... я получаю уродливое (сообщение об ошибке тестирования)

0 прохождения (61мс) 1 ошибка

1) мутации приращение: Ошибка типа: приращение не является функцией в Context.increment (dist \ webpack: \ tests \ unit \ store.spec.js: 12: 5)

1 Ответ

0 голосов
/ 17 апреля 2019

Я наконец нашел ответ на этот вопрос: В моем тестовом файле у меня есть

import { expect } from 'chai'
import mutations from '@/store'

правильный способ импортировать мутации должен быть ...

import { expect } from 'chai'
import {mutations} from '@/store'

Дело было решено :) {}

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...