Выбор ответа Middle Тестирование обновлено

Зачем MSW в тестах компонентов

Вопрос

Почему для тестов компонентов с запросами часто выбирают MSW, а не vi.mock('axios')?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: MSW перехватывает запросы на уровне сети, тест не зависит от клиента. MSW описывает ответы на уровне запросов (метод, URL).

Варианты ответа

  1. MSW перехватывает запросы на уровне сети, тест не зависит от клиентаправильный ответ
  2. MSW ходит в настоящий бэкенд на стенде, поэтому тест реалистичнее
  3. vi.mock не умеет мокать модули из node_modules, только свои
  4. MSW ускоряет тесты в 10 раз за счёт кеширования ответов

Разбор

MSW описывает ответы на уровне запросов (метод, URL). Код компонента и клиент остаются настоящими, тест проверяет весь путь от клика до отображения ответа. Те же обработчики можно использовать в Storybook и в разработке.

  • В настоящий бэкенд MSW не ходит, он отвечает сам.
  • vi.mock умеет мокать пакеты, просто это привязывает тест к реализации.
  • Про скорость обещаний нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.