使用 vue-test-utils 测试 vue-apollo

Luc*_*fer 1 vue.js vuejs2 vue-apollo vue-test-utils

我是测试和 GraphQL 的新手。我正在尝试使用 vue-test-utils 和 jest 测试使用 GraphQL 的 VueJS 应用程序。我有一个组件,它从挂载的钩子中的 graphql 服务器获取类别。

mounted() {
  this.$apollo
    .query({
      query: getCategories
    })
    .then(res => {
      this.categoriesData[0].options = res.data.categories;
    });
}
Run Code Online (Sandbox Code Playgroud)

在我的StepTwo.spec.js中,我将 Vue-apollo 添加到 vue 实例。

const Vue = createLocalVue();
Vue.use(VeeValidate);
Vue.use(BootstrapVue);
Vue.use(VueApollo);

test("Step Two ", async () => {
  const wrapper = shallowMount(StepTwo, { localVue: Vue });
});
Run Code Online (Sandbox Code Playgroud)

当我尝试安装我的组件时,我得到了 TypeError: Cannot read property 'query' of undefined. 任何帮助,将不胜感激。

Luc*_*fer 6

我设法解决了,但我不知道这是否是正确的方法。我在安装组件时嘲笑了$apollo。

mocks: {
  $apollo: {
    query: jest.fn(() => Promise.resolve({
      data: {
        categories,
        subCategories: categories
      }
    }))
  }
}
Run Code Online (Sandbox Code Playgroud)