Ferramenta open source de simulação e mocking de APIs que permite substituir dependências lentas ou instáveis por simulações reutilizáveis.
mswjs/msw
Biblioteca JavaScript para mockar APIs, que intercepta requisições de rede em navegadores e no Node.js para que o código do app permaneça inalterado enquanto testes e desenvolvimento usam respostas simuladas.
- Estrelas
- 18,307
- Forks
- 642
- Issues abertas
- 16
- Último commit
- há 8 dias
O que é?
Mock Service Worker (MSW) simula requisições de API na camada de rede. No navegador, usa a Service Worker API para responder às requisições com suas definições de mock; no Node.js, usa uma camada de interceptação de baixo nível. Como o código da própria aplicação, incluindo fetch, axios e bibliotecas de busca de dados, não é alterado, o app se comporta como em produção.
Os handlers de requisição são escritos com uma sintaxe de roteamento semelhante à do Express, que oferece suporte a parâmetros, curingas e expressões regulares. As respostas podem definir códigos de status, headers, cookies e atrasos, ou ser geradas por resolvers totalmente personalizados. Os mesmos handlers podem ser reutilizados em testes unitários, de integração e E2E, além do desenvolvimento local; as respostas também ficam visíveis na aba Network das DevTools do navegador.
O projeto oferece setupWorker para uso no navegador e setupServer para Node.js, além de um site de documentação e repositórios de exemplo para configurações comuns.
Recursos principais
- 01Intercepta requisições na camada de rede, mantendo o código da aplicação inalterado.
- 02Funciona em navegadores via Service Worker e no Node.js para testes e servidores.
- 03Correspondência de rotas no estilo Express, com parâmetros, curingas e expressões regulares.
- 04Respostas com códigos de status, headers, cookies e atrasos personalizados, além de funções resolver.
- 05As respostas simuladas ficam visíveis na aba Network das DevTools do navegador.
Casos de uso
- Desenvolver funcionalidades de frontend antes de a API do backend estar pronta.
- Escrever testes unitários, de integração e E2E que simulem chamadas HTTP e GraphQL.
- Simular endpoints lentos ou com falhas para testar estados de carregamento e erro.
- Executar um servidor Express local usando APIs de terceiros simuladas.
Início rápido
- 1
Instale o pacote como dependência de desenvolvimento
npm i msw --save-dev - 2
Leia o guia oficial de início rápido para configurar os manipuladores de solicitações
Antes de usar
- A simulação no navegador exige gerar um arquivo Service Worker e distribuí-lo com o app.
Em coleções
Tópicos
Perguntas frequentes
- O que é msw?
- Biblioteca JavaScript para mockar APIs, que intercepta requisições de rede em navegadores e no Node.js para que o código do app permaneça inalterado enquanto testes e desenvolvimento usam respostas simuladas. Mock Service Worker (MSW) simula requisições de API na camada de rede. No navegador, usa a Service Worker API para responder às requisições com suas definições de mock; no Node.js, usa uma camada de interceptação de baixo nível. Como o código da própria aplicação, incluindo fetch, axios e bibliotecas de busca de dados, não é alterado, o app se comporta como em produção.
- msw é gratuito? Qual é a licença?
- msw é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- msw ainda é mantido?
- Manutenção ativa. O último commit de msw foi em 17 de out. de 2026.
- Para que posso usar msw?
- Desenvolver funcionalidades de frontend antes de a API do backend estar pronta. Escrever testes unitários, de integração e E2E que simulem chamadas HTTP e GraphQL. Simular endpoints lentos ou com falhas para testar estados de carregamento e erro. Executar um servidor Express local usando APIs de terceiros simuladas.
- Como instalar msw?
- Instale o pacote como dependência de desenvolvimento: npm i msw --save-dev Leia o guia oficial de início rápido para configurar os manipuladores de solicitações
- Onde consigo msw?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mswjs/msw
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Jest é um framework de testes para JavaScript com assertions integradas, mocking, testes de snapshot e modo watch interativo.
Toolkit de testes para Go com assertions, mocks e uma estrutura de suites compatível com o runner padrão go test.
Um sandbox para desenvolver e testar componentes de UI do React isoladamente, sem precisar executar a aplicação inteira.
Framework de automação de testes para Node.js, com testes end-to-end, unitários e de componentes em navegadores e apps móveis via WebDriver, BiDi e Appium.
Um servidor SMTP local que captura e-mails enviados durante o desenvolvimento e os exibe em uma interface web.