2016-06-18 5 views
2

Я начинаю с Vue.js и действительно сложно найти документацию о Испытание модуля.Методы тестирования компонентов Vue

Я пытаюсь проверить компоненты methods и встроенный материал как ready(). Я могу правильно их называть, но они внутренне имеют ссылки на объект this и this контекст теряется во время тестирования.

ошибок

TypeError: this.$on is not a function

spec.js

import Vue  from 'vue'; 
import Partners from 'components/main/partner/Partners'; 

describe.only('Partners.vue',() => { 
    it('should render with mocked partners', (cb) => { 
    Partners.ready(); // I get an error here because ready() is calling inside: this.$on(...) 

    cb(null); 
    }); 
}); 

component.vue

export default { 
    name: 'Partners', 

    data() { 
    return { }; 
    }, 

    methods: { 
    get() { 
     // ... 
    } 
    }, 
    ready() { 
    this.$on('confirm', (confirm) => { 
     // ... 
    }); 

    this.get(); 
    } 
}; 

ответ

2

Я думаю, что ready() обесценивается вместе с Vue 1.0. Рассмотрите возможность обновления до Vue 2 (где mount() заменяет ready()).

Для тестирования компонента необходимо инициализировать компонент и экземпляр Vue (и, как правило, монтировать его, в зависимости от того, что вы делаете).

Использование шаблона вю-WebPack (который использует Vue 2):

var ctor = Vue.extend(Partners) 
var vm = new ctor() 
vm.$mount() 

теперь вы можете делать такие вещи, как vm.method(), и vm.mount() будет автоматически называться и т.д.

Смежные вопросы