Unit testing 如何对依赖于状态、提交、调度和getter的Vuex操作进行单元测试(mocha)?

Unit testing 如何对依赖于状态、提交、调度和getter的Vuex操作进行单元测试(mocha)?,unit-testing,vue.js,mocha.js,chai,vuex,Unit Testing,Vue.js,Mocha.js,Chai,Vuex,我有一个非常复杂的Vuex操作需要测试,它不仅需要访问{commit},还需要访问整个shebang-{commit,dispatch,state,getters} 我想在这里测试actions.getTotals()。在基于摩卡/柴的框架中,您将如何处理这一问题 请记住,我不必模仿API中的任何内容—我将针对本地数据库进行测试 const actions = { getTotals: ({ commit, getters, state, dispatch }, metadata) =>

我有一个非常复杂的Vuex操作需要测试,它不仅需要访问{commit},还需要访问整个shebang-{commit,dispatch,state,getters}

我想在这里测试actions.getTotals()。在基于摩卡/柴的框架中,您将如何处理这一问题

请记住,我不必模仿API中的任何内容—我将针对本地数据库进行测试

const actions = {
  getTotals: ({ commit, getters, state, dispatch }, metadata) => {
    dispatch('startTimer')
    return api.totals({
      dateFrom: getters.startDate,
      dateTo: getters.endDate,
      clientId: state.filters.client.id,
      metadata: metadata
    })
    .then((response) => commit(types.UPDATE_TOTALS, response.data.result))
    .then(() => dispatch('stopTimer'))
  },
  startTimer: ({commit}) => commit('START_TIMER', Date.now()),
  stopTimer: ({commit}) => commit('STOP_TIMER', Date.now())
}