我有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今天对我不太友好... 我不经常在这里发布信息,因此,除上述内容外,请告诉我您需要什么信息!