Как я могу СУШИТЬ код, shallowMounting компонента vue в ловушке beforeEach? - PullRequest
2 голосов
/ 11 июля 2019

Впервые я реализую несколько модульных тестов в приложении Vue с использованием vue-test-utils.Тесты работают, но я бы хотел СУШИТЬ код.

В данный момент я добавляю следующий код в каждый из моих тестов:

const wrapper = shallowMount(ConceptForm, {
    localVue,
    router,
    propsData: { conceptProp: editingConcept }
});

Созданиеtest выглядит примерно так

it('shows the ctas if the state is equal to editing', () => {
    const wrapper = shallowMount(ConceptForm, {
        localVue,
        router,
        propsData: { conceptProp: editingConcept }
    });

    expect(wrapper.find('#ctas').exists()).toBe(true)
});

Я делаю это, потому что мне нужно передать эту конкретную информацию propsData оболочке.Есть ли какой-нибудь способ, которым я мог бы отложить компонент в beforeEach и затем пропустить пропеллер?

Спасибо!

1 Ответ

1 голос
/ 11 июля 2019

Я думаю, что вы можете достичь того, чего хотите, используя функцию setProps объекта-обертки. Рассмотрим следующий пример:

let wrapper;
beforeEach(() => {
    wrapper = shallowMount(ConceptForm, {
        localVue,
        router,
        propsData: { conceptProp: editingConcept }
    });
});

it('shows the ctas if the state is equal to editing', () => {
    wrapper.setProps({ conceptProp: editingConcept });
    expect(wrapper.find('#ctas').exists()).toBe(true)
});
...