0

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

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

在我StepTwo.spec.js的 in 我将 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 });
});

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

4

1 回答 1

5

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

mocks: {
  $apollo: {
    query: jest.fn(() => Promise.resolve({
      data: {
        categories,
        subCategories: categories
      }
    }))
  }
}
于 2019-06-18T04:54:55.783 回答