Инструмент с открытым исходным кодом для симуляции и мокирования API: заменяйте нестабильные или медленные зависимости готовыми симуляциями.
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
Установите пакет как зависимость для разработки
npm i msw --save-dev - 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 обновляется ежедневно.
Похожие проекты
Jest — фреймворк для тестирования JavaScript со встроенными проверками, моками, snapshot-тестированием и интерактивным watch mode.
Набор инструментов для тестирования Go: assertions, моки и структура suite, совместимая со стандартным запускателем go test.
Песочница для разработки и тестирования React-компонентов отдельно от основного приложения.
Фреймворк автоматизации тестирования на Node.js для end-to-end, модульных и компонентных тестов в браузерах и мобильных приложениях через WebDriver, BiDi и Appium.
Локальный SMTP-сервер для перехвата исходящей почты во время разработки и просмотра писем в веб-интерфейсе.