Vue测试实用程序-跳过创建的挂钩

时间:2019-07-09 14:28:24

标签: vue.js jestjs vue-test-utils

我想跳过created()挂钩中正在调用的所有方法。有办法吗?

所以代替这个

        created() {
            this.getAllocations();
            this.getModels();
            this.getTeams();
            this.getCustodians();
            this.getDefaultFeeStructure();
        }

我想要

created() { }

值得注意的是,我实际上不能更改组件本身,但是出于测试目的,这需要完成。

1 个答案:

答案 0 :(得分:0)

您可以使用全局混合来完成此操作(请参见https://vuejs.org/v2/guide/mixins.html#Global-Mixin

但是,对于您的情况,您需要一个自定义合并策略来防止运行在组件上创建的挂钩:

  

具有相同名称的挂钩函数将合并到一个数组中,以便将全部调用它们。 Mixin挂钩将在组件自己的挂钩之前被调用。 (https://vuejs.org/v2/guide/mixins.html#Option-Merging

https://jsfiddle.net/rushimusmaximus/9akf641z/3/上查看有效的示例

Vue.mixin({
  created() {
    console.log("created() in global mixin")
  }
});

const mergeCreatedStrategy = Vue.config.optionMergeStrategies.created;
Vue.config.optionMergeStrategies.created = (parent, child) => {
  return mergeCreatedStrategy(parent);
};

new Vue ({
  el: "#vue-app",
  template: '<p>See console output for logging. Rendered at {{renderDate}}</p>',
  data() {
    return {
     renderDate: new Date()
    }
  },
  created() {
    console.log("created() in component")
  }
})