包含Vuex.Store.watch的单元测试Vuex操作

时间:2018-12-12 15:16:08

标签: unit-testing vuejs2 jestjs vuex

我有Vuex存储,并且有一个操作返回一个诺言,该诺言基本上在内部设置了this.watch(),并且仅在更改受监视状态属性时拒绝或解决。动作中的this是指课程的商店实例。

我试图弄清楚如何为此动作编写一个Jest单元测试,因为大多数逻辑都发生在监视回调中,并且this是未定义的,因为我将动作作为常规进行测试JS函数(隔离)。

动作如下:

pickCard ({ commit, dispatch, getters, rootGetters }) {
  commit('showCardPicker')

  return new Promise((resolve, reject) => {
    const unwatch = this.watch(
      state => state.cardPickerVisible,
      () => {
        unwatch()
        // removed magic
        return resolve()
      }
    )
  })
}

想象一下,玩家必须选择一张纸牌,而在拾纸器打开时,我不想兑现承诺。 state.cardPickerVisible的变化是通过另一个突变发生的,未显示。

Google今天对我不太友好... 我不经常在这里发布信息,因此,除上述内容外,请告诉我您需要什么信息!

0 个答案:

没有答案