Repolode
mswjs

mswjs/msw

Библиотека для мокирования API на JavaScript: перехватывает сетевые запросы в браузерах и Node.js, чтобы код приложения работал без изменений с мок-ответами в тестах и при разработке.

Звёзды
18,307
Форки
642
Открытые issues
16
Последний коммит
8 дней назад

Что это?

Mock Service Worker (MSW) мокирует API-запросы на сетевом уровне. В браузере он использует Service Worker API, чтобы отвечать на запросы согласно заданным мокам, а в Node.js — низкоуровневый механизм перехвата. Поскольку код самого приложения, включая fetch, axios и библиотеки для загрузки данных, не меняется, приложение ведёт себя так же, как в production.

Обработчики запросов описываются с помощью синтаксиса маршрутизации, похожего на Express, с поддержкой параметров, подстановочных символов и регулярных выражений. В ответах можно задавать коды состояния, заголовки, cookies и задержки, а также использовать полностью собственные функции-обработчики. Одни и те же обработчики можно использовать в unit-, интеграционных и E2E-тестах, а также при локальной разработке. Ответы отображаются во вкладке Network в DevTools браузера.

В проекте есть setupWorker для браузера и setupServer для Node.js, а также сайт с документацией и примеры репозиториев для типовых сценариев настройки.

Ключевые возможности

  • 01Перехватывает запросы на сетевом уровне, поэтому код приложения можно не менять.
  • 02Работает в браузерах через Service Worker и в Node.js — для тестов и серверов.
  • 03Маршрутизация в стиле Express с параметрами, подстановочными символами и регулярными выражениями.
  • 04Позволяет задавать коды состояния, заголовки, cookies, задержки и собственные функции-обработчики ответов.
  • 05Мок-ответы отображаются во вкладке Network в DevTools браузера.

Сценарии использования

  • Разработка функций фронтенда до готовности API бэкенда.
  • Написание unit-, интеграционных и E2E-тестов с мокированием HTTP- и GraphQL-запросов.
  • Имитация медленных или неработающих эндпоинтов для проверки состояний загрузки и ошибок.
  • Запуск локального Express-сервера с заглушками для сторонних API.

Быстрый старт

  1. 1

    Установите пакет как зависимость для разработки

    npm i msw --save-dev
  2. 2

    Прочитайте официальное краткое руководство, чтобы настроить обработчики запросов

Что важно знать

  • Для мокирования в браузере необходимо создать файл Service Worker и включить его в приложение.

В подборках

Темы

Частые вопросы

Что такое msw?
Библиотека для мокирования API на JavaScript: перехватывает сетевые запросы в браузерах и Node.js, чтобы код приложения работал без изменений с мок-ответами в тестах и при разработке. Mock Service Worker (MSW) мокирует API-запросы на сетевом уровне. В браузере он использует Service Worker API, чтобы отвечать на запросы согласно заданным мокам, а в Node.js — низкоуровневый механизм перехвата. Поскольку код самого приложения, включая fetch, axios и библиотеки для загрузки данных, не меняется, приложение ведёт себя так же, как в production.
msw можно использовать бесплатно? Какая у него лицензия?
msw распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
msw всё ещё поддерживается?
Активно поддерживается. Последний коммит в msw — 17 окт. 2026 г..
Для чего можно использовать msw?
Разработка функций фронтенда до готовности API бэкенда. Написание unit-, интеграционных и E2E-тестов с мокированием HTTP- и GraphQL-запросов. Имитация медленных или неработающих эндпоинтов для проверки состояний загрузки и ошибок. Запуск локального Express-сервера с заглушками для сторонних API.
Как установить msw?
Установите пакет как зависимость для разработки: npm i msw --save-dev Прочитайте официальное краткое руководство, чтобы настроить обработчики запросов
Где скачать msw?
Исходный код и инструкции по установке — на GitHub: https://github.com/mswjs/msw

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты