为什么VueX存储跨多个单元测试保留状态?

时间:2019-02-06 15:21:09

标签: unit-testing vue.js mocha vuex vue-test-utils

我正在为一个分页模块编写单元测试,它具有一个简单的VueX存储模块。

我正在使用Vue.js 2.5和Mocha / Chai / Sinon进行测试。设置使用Vue CLI 3。

问题在于,当在一个单元测试中商店中的<img>递增时,即使我尝试创建一个新的商店,此状态也将保留到下一个测试中。

我试图通过使用返回currentPage新鲜副本的函数来返回新鲜的分页模块,但这不起作用。我将其留在代码中,如下面的规范所示。

store / pagination.js

Object.assign()

Pagination.spec.js

const state = {
  currentPage: 0
}

export const getters = {
  currentPage: state => {
    return state.currentPage
  }
}

export const actions = {

  nextPage ({ commit, state }) {
    commit('setCurrentPage', state.currentPage + 1)
  }
}

export const mutations = {
  setCurrentPage (state, page) {
    state.currentPage = page
  }
}

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations
}

1 个答案:

答案 0 :(得分:0)

解决方案是对模块中的状态使用函数,而不是普通的旧javascript对象。这是我的新商店状态代码:

export const state = () => {
  return {
    currentPage: 0
  }
}

@SumNeuron从Vue不和谐频道提供了答案。