Alternativa ao Mock Service Worker (MSW): Em que casos usar uma plataforma completa de mocking de API

Mock Service Worker é ótimo para testes de frontend. Saiba onde o MSW se encaixa, onde não se encaixa, e a melhor alternativa ao MSW para mocks compartilhados e guiados por esquema.

Ashley Innocent

Ashley Innocent

24 junho 2026

Alternativa ao Mock Service Worker (MSW): Em que casos usar uma plataforma completa de mocking de API

Apidog para empresas

Implantação local

SSO & RBAC

Conforme SOC 2

Explorar Apidog Enterprise

Se você escreve testes de frontend, provavelmente já se deparou com o Mock Service Worker (MSW). É a biblioteca ideal para interceptar requisições dentro do navegador e do Node, e para testes de unidade e de componente é difícil de superar. Este guia explica o que o MSW faz bem, onde ele para de escalar e quando uma plataforma de mocking de API hospedada faz mais sentido.

botão

O que é Mock Service Worker?

Mock Service Worker é uma biblioteca JavaScript que intercepta requisições de rede na origem. No navegador, ele registra um Service Worker que intercepta chamadas fetch e XMLHttpRequest. No Node, ele corrige a camada de requisições para que os mesmos manipuladores sejam executados no Jest ou Vitest. Você escreve manipuladores de requisição que correspondem a um método e caminho e, em seguida, retorna a resposta que desejar.

O design é inteligente. Seu código de aplicação continua chamando as APIs de rede reais. O MSW fica no meio e responde, então você não precisa fazer stub de fetch ou trocar seu cliente HTTP. As mesmas definições de mock funcionam em testes e em um build de desenvolvimento em execução, e é por isso que tantas equipes de React e Vue o utilizam. Você pode se aprofundar no código-fonte do MSW no GitHub para ver como a camada de interceptação funciona.

Um manipulador típico se parece com isto:

import { http, HttpResponse } from 'msw'

export const handlers = [
  http.get('/api/users/:id', ({ params }) => {
    return HttpResponse.json({ id: params.id, name: 'Ada Lovelace' })
  }),
]

Esse é todo o apelo. O mock vive ao lado do seu código, é versionado com seus testes e é executado onde quer que seu JavaScript seja executado.

Onde o MSW se destaca

O MSW é uma ótima opção quando o mock e o consumidor vivem na mesma base de código. Alguns casos em que é genuinamente a ferramenta certa:

Se essa é a sua situação, você provavelmente não precisa de mais nada. O MSW é gratuito, de código aberto e construído exatamente para isso.

Onde o MSW começa a apresentar dificuldades

A mesma coisa que torna o MSW ótimo em um único repositório, mocks que vivem como código nesse repositório, é o que o limita quando mais pessoas se envolvem. É aqui que as equipes tendem a superá-lo.

Consumidores não-JavaScript

Os manipuladores do MSW são JavaScript. Se sua equipe mobile escreve em Swift ou Kotlin, ou seus testes de integração de backend são executados em Go ou Python, eles não podem importar seus manipuladores. Eles precisariam de seus próprios mocks, que se desviariam dos seus. Um servidor de mock agnóstico à linguagem que se comunica via HTTP por uma URL real funciona para qualquer cliente, independentemente da linguagem.

Mocks compartilhados e sempre ativos

O MSW é executado dentro de um processo. Não há uma URL compartilhada que um engenheiro de QA, um designer ou uma equipe parceira possa acessar de sua própria máquina. No momento em que você deseja um endpoint que várias pessoas usam ao mesmo tempo, você precisa de um servidor de mock hospedado com um endereço estável, e não um Service Worker vinculado a uma única aba do navegador.

Workflows "design-first" e orientados por esquema

Se você projeta APIs em OpenAPI antes de escrever o código, você deseja mocks gerados automaticamente a partir da especificação, para que o mock não discorde do contrato. O MSW espera que você escreva manipuladores manualmente. Gerar mocks diretamente de um esquema é um modelo diferente. Você pode ler mais sobre essa abordagem neste guia de mocking de API e os padrões relacionados.

Dados realistas e dinâmicos em escala

O MSW retorna o que quer que seu manipulador codifique. Para dados realistas em muitos campos, você escreve essa lógica sozinho. Plataformas que incorporam geração estilo faker e inferência de nomes de campos fornecem respostas realistas sem que você precise criar cada uma manualmente.

MSW vs uma plataforma completa de mocking de API

Aqui está uma comparação honesta. Nenhuma coluna é "melhor" em abstrato; elas resolvem problemas diferentes.

Capacidade Mock Service Worker Plataforma de API hospedada (ex: Apidog)
Executa dentro de testes de unidade/componente JS Sim, nativo Não, não é uma biblioteca de testes JS
Agnóstico à linguagem via HTTP Não (somente JS) Sim, qualquer cliente
URL compartilhada para toda a equipe Não Sim, servidor de mock hospedado
Gera mocks a partir do OpenAPI Manual Automático a partir do esquema
Geração de dados inteligentes/dinâmicos Codificado manualmente Integrado
Vive no seu repositório com testes Sim Armazenado em projeto compartilhado
Custo Gratuito, código aberto Camada gratuita + planos pagos

A conclusão: o MSW é a escolha certa para testes de frontend e desenvolvimento local. Uma plataforma como o Apidog é a escolha certa quando o mock precisa ser compartilhado, agnóstico à linguagem ou impulsionado por uma especificação.

Apidog como complemento, não substituto

Para ser claro, o Apidog não é um substituto direto para o MSW dentro do Jest ou Vitest. Não é uma biblioteca JavaScript que você importa para um arquivo de teste. Trate-o como a camada acima dos seus testes de unidade, o local onde os mocks se tornam um recurso compartilhado e agnóstico à linguagem para toda a equipe.

Veja como isso funciona na prática. Você projeta ou importa uma API no Apidog, e ele gera um endpoint de mock automaticamente a partir do esquema. O mock obtém uma URL real que seus colegas de equipe de frontend, mobile e QA podem todos chamar. O Apidog preenche as respostas com dados realistas inferindo a partir dos nomes dos campos, então um campo chamado email retorna um e-mail e createdAt retorna uma data. Você também pode escrever regras personalizadas quando precisar de uma resposta 500 específica ou de um caso de borda particular.

Como o mock vem do mesmo esquema do seu design e testes, ele permanece sincronizado com o contrato. Essa é a parte que os manipuladores escritos à mão não podem garantir. Se você quiser ver como a geração de esquema para mock se compara entre as ferramentas, este resumo das melhores ferramentas de mocking de API coloca as opções lado a lado.

Uma divisão prática que muitas equipes adotam:

Você não está escolhendo um. Você está usando cada um onde ele se encaixa. Baixe o Apidog se quiser experimentar o lado hospedado junto com sua configuração MSW existente.

Outras alternativas ao MSW que valem a pena conhecer

O MSW não é a única biblioteca de mocking, e uma plataforma não é sua única opção. Dependendo da sua stack:

Cada um tem suas vantagens e desvantagens. WireMock e Prism se inclinam para o trabalho de backend e contrato; Mockoon e json-server se inclinam para uma configuração local rápida. Se o seu problema é especificamente "o MSW não consegue ajudar meus colegas de equipe que não usam JS", qualquer servidor de mock baseado em HTTP resolve isso. Para um ângulo de frontend mais amplo, veja como as equipes lidam com o mocking de APIs em React com Axios.

Perguntas Frequentes

O MSW é gratuito?

Sim. O Mock Service Worker é de código aberto sob a licença MIT e gratuito para uso em qualquer projeto, comercial ou não. Você só começa a pagar quando migra para uma plataforma hospedada para mocks compartilhados, e ferramentas como o Apidog também incluem um plano gratuito para isso.

O Apidog pode substituir o MSW nos meus testes de unidade?

Não, e você não deve tentar fazer isso. O MSW intercepta requisições dentro do seu test runner JavaScript. O Apidog é uma plataforma hospedada, não uma biblioteca importável, então ele não pode funcionar dentro do Jest ou Vitest da mesma forma que o MSW. Use o Apidog para mocks compartilhados, entre equipes ou orientados por esquema. Se você está focado puramente no lado do test runner, este guia sobre como fazer mock de chamadas de API cobre as abordagens baseadas em código.

O MSW funciona no Node, ou apenas no navegador?

Ambos. No navegador, o MSW usa um Service Worker. No Node, ele corrige a camada de requisições para que os mesmos manipuladores sejam executados no Jest, Vitest ou em qualquer ambiente de teste Node. Esse modo duplo é uma de suas maiores forças para equipes JS full-stack.

Quando devo mudar do MSW para um servidor de mock hospedado?

Mude, ou melhor, adicione um, quando o mock precisar ser compartilhado. Os sinais mais claros: um cliente não-JavaScript precisa dele, várias pessoas precisam da mesma URL estável, ou você projeta APIs com base em especificações e deseja que os mocks sejam gerados automaticamente a partir do OpenAPI.

Conclusão

O MSW é excelente no que foi construído para fazer: interceptar requisições dentro do JavaScript para testes de frontend e de unidade. Ele não tenta ser um mock compartilhado, hospedado e agnóstico à linguagem, e isso está tudo bem. Quando seus mocks precisam sair do repositório, quando outras linguagens ou outras equipes precisam deles, ou quando você deseja que eles sejam gerados a partir de uma especificação, esse é o momento de adicionar uma plataforma completa ao lado dele.

O Apidog lida com o lado compartilhado e orientado por esquema: um servidor de mock hospedado com uma URL real, mocks automáticos a partir do seu design OpenAPI e dados realistas prontos para uso. Mantenha o MSW onde ele é forte e deixe o Apidog cobrir tudo o que vai além da borda do seu test runner. Baixe o Apidog e aponte seu frontend para um mock compartilhado para ver a diferença.

botão

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs