Когда в тестах Vue.js компонентов используется shallowMount

«Когда в тестах Vue.js компонентов используется shallowMount» — вопрос из категории Тестирование, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

shallowMount используется для тестирования компонента изолированно, без рендеринга его дочерних компонентов. Это ускоряет тесты и делает их более предсказуемыми, так как фокус остаётся на текущем компоненте.

Пример:

import { shallowMount } from '@vue/test-utils';
import ParentComponent from '@/components/ParentComponent.vue';

test('renders without crashing', () => {
  const wrapper = shallowMount(ParentComponent);
  expect(wrapper.exists()).toBe(true);
});

Когда использовать:

  • Для юнит-тестов компонента
  • Когда нужно проверить только логику родительского компонента
  • Чтобы избежать сложностей с мокированием дочерних компонентов

Для интеграционных тестов (проверка взаимодействия с дочерними компонентами) лучше использовать mount.