如何使用 store 和 propsData 挂载 Nuxt 组件以进行 Jest 测试

How do I mount a Nuxt component with store and propsData for Jest Testing

几天来我一直在努力寻找这个问题的答案 - 希望有人能提供帮助!

我在 NuxtJS 中有一个工作项目,包括 Vuex 存储和模块。应用程序中的一切都运行良好,我可以在我的代码中使用 this.$store.dispatch('cart/updateShippingAddress', addressObject) 没有任何问题。

现在我正在使用 shallowMount 在 Jest 中编写我的测试对象。过去,我将 propsData 和数据传递给正在安装的组件,例如:

const testProps= { someData: 'goes here' }
const testData = function () {
   return {}
}
const options = { propsData: testProps, data: testData }

然后当我安装包装器时,我使用: await wrapper = shallowMount(Component, options) - 这很好用。

现在,当我涉及 Vuex 商店时,我使用 const wrapper = shallowMount(Actions, { store, localVue }) 创建商店也很有效。

但是我如何使用 propsData 和 Vuex Store shallowMount 组件???我已经尝试了我能想到的所有参数排列,并且每次都没有正确传递商店或 propsData。它一定是类似于 shallowMount(Component, { store, localVue, options }) 但我似乎无法破解此代码...

你试过了吗shallowMount(Component, { store, localVue, ...options })

因为storelocalVue和任何其他选项必须处于同一级别:

   shallowMount(MyComponent, {
      data,
      propsData,
      localVue,
      store,
    }

根据您提供的行 (shallowMount(Component, { store, localVue, options })),它给出:

   shallowMount(MyComponent, {
      localVue,
      store,
      options: {
         data,
         propsData
      }
    }