Vue как проверить ответ на событие, отправленное дочерним элементом в родительском - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь настроить модульное тестирование нового проекта Vue, над которым я работаю. Я впервые провожу модульное тестирование интерфейса. Я использую Jest и Vue -test-utils.

Я застрял на том, как протестировать один из моих компонентов. Настройка basi c выглядит следующим образом:

<Grid>
    <GridItem @clicked="toggleItem"/>
</Grid>

Метод toggleItem родительского элемента генерирует событие 'input'. Я пытаюсь проверить, что когда генерируется событие «clicked», родительский элемент генерирует событие «input».

Я настроил свой тест для shallowMount родительского компонента. Вот как выглядит мой тест:

it('clicking a GridItem should emit and input event', async () => {
  const gridItems = wrapper.findAll(GridItem);
  await gridItems.at(0).vm.$emit('clicked');
  expect(wrapper.emitted().input.length).toBe('1');
});

Однако, когда я запускаю этот тест, я получаю эту ошибку

TypeError: _vm.toggleItem is not a function

Есть идеи, почему это происходит?

...