Javascript 等待后未触发Sinon间谍-为什么?[Vue单元测试]

Javascript 等待后未触发Sinon间谍-为什么?[Vue单元测试],javascript,vue.js,sinon,Javascript,Vue.js,Sinon,我是Vue和Vue单元测试的新手,请耐心听我说。:) 我需要测试两个VueX操作是否从特定组件创建的created()钩子中调度。第一次派遣会触发其Sinon间谍,但第二次不会。在第一次等待声明之后,任何间谍都不会活动 可能需要注意的是,代码本身的功能是正确的,并且执行预期的操作。只有单元测试失败了 以下是示例代码: async created() { await this.$store.dispatch(GET_A) await this.$store.dispatch(GET_B)

我是Vue和Vue单元测试的新手,请耐心听我说。:)

我需要测试两个VueX操作是否从特定组件创建的created()钩子中调度。第一次派遣会触发其Sinon间谍,但第二次不会。在第一次等待声明之后,任何间谍都不会活动

可能需要注意的是,代码本身的功能是正确的,并且执行预期的操作。只有单元测试失败了

以下是示例代码:

async created() {
  await this.$store.dispatch(GET_A)
  await this.$store.dispatch(GET_B)

  // Do a bunch of other things after.
}
这是单元测试(使用Chai&Mocha):

如果在created()钩子中交换两个分派方法的顺序,测试将通过,因为GET_B是第一个。但是,GET_A的单元测试将失败

我在想,这可能是一种类似于存根操作不返回承诺的行为,导致测试在等待时暂停,直到超时

我曾多次尝试寻找其他人遇到的类似问题,这是我能找到的最接近的问题:

从我的理解来看,他的解决方案不能应用于这里

我将非常感谢任何关于我能做什么来解决这个问题的建议

谢谢

// Bunch of other things happen here, like setting up localVue, etc.

describe('TestPage.vue', () => {
  let actions
  let getters
  let store
  let router

  beforeEach(() => {
    actions = {
      GET_A: sinon.stub(),
      GET_B: sinon.stub(),
    }

    store = new Vuex.Store({
      actions,
      getters
    })

    router = new VueRouter()
  })

  it('created() should trigger the action GET_B.', () => {
    const wrapper = shallowMount(TestPage, {
      store,
      localVue,
      router,
      attachToDocument: true
    })

    expect(actions.GET_B.called).to.be.equal(true)
  })
})