Vue Test Utils - пропустить созданный хук - PullRequest
0 голосов
/ 09 июля 2019

Я хочу пропустить все методы, которые вызываются в хуке created().Есть ли способ сделать это?

Так что вместо этого

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

Я хочу это

created() { }

Стоит отметить, что я не могу изменить сам компонент, но для целей тестирования это необходимо сделать.

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете сделать это с помощью глобального миксина (см. 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")
  }
})
...