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

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

Ответ

В тестах Vue.js компонентов mount используется, когда нужно протестировать компонент полностью, включая его дочерние компоненты и DOM-структуру. Это полезно для интеграционных тестов, где важно проверить взаимодействие между компонентами или работу с реальным DOM.

Пример:

import { mount } from '@vue/test-utils'
import MyComponent from '@/components/MyComponent.vue'

test('renders a child component', () => {
  const wrapper = mount(MyComponent)
  expect(wrapper.find('.child-component').exists()).toBe(true)
})

В отличие от shallowMount, который изолирует тестируемый компонент, mount создаёт полное DOM-дерево. Это может замедлить тесты, но даёт более реалистичное поведение. Используй mount, когда:

  1. Тестируешь взаимодействие с дочерними компонентами
  2. Проверяешь работу с DOM-элементами
  3. Тестируешь компоненты, которые полагаются на родительский контекст