Pular para o conteúdo
Test Automation Lab
  • Aprender
  • Praticar
  • Referência
  • Qualidade
Menu
  • Aprender
  • Praticar
  • Referência
  • Qualidade
PT
  • Português
  • English
Tema

Test Automation Lab

GitHub© 2026 LCDS IT
← Todas as receitas

🛰️ Mock de rede na fronteira

Intercepte o HTTP na camada de rede para que o código real do seu cliente continue rodando.

Praticante
  • api
  • mocking
  • determinism

Problema

Testes que chamam uma API de verdade são lentos, instáveis e falham por motivos alheios ao seu código. Mas fazer mock do seu próprio wrapper de fetch significa que o código que você mais quer testar nunca roda.

Solução

Intercepte na fronteira da rede em vez de substituir o seu cliente. Uma ferramenta como o MSW (Mock Service Worker) responde às requisições na camada de transporte, então o seu código real de fetch/axios, a serialização e o tratamento de erros rodam contra respostas determinísticas.

Defina os handlers uma vez e compartilhe entre as camadas de unidade, integração e E2E, para manter o comportamento consistente.

Trecho de código

Handler do MSW: a rede responde, o código do seu cliente roda de verdade
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';

const server = setupServer(
  http.get('/api/users/:id', ({ params }) =>
    HttpResponse.json({ id: params.id, name: 'Ada Lovelace' }),
  ),
);

beforeAll(() => server.listen({ onUnhandledRequest: 'error' }));
afterEach(() => server.resetHandlers());
afterAll(() => server.close());

Armadilhas

  • Fazer mock do seu cliente de API em vez da rede: aí o teste não prova nada sobre as requisições reais.
  • Deixar requisições sem handler passarem em silêncio; use onUnhandledRequest: 'error' para pegar desvios.
  • Esquecer de resetar os handlers entre os testes, vazando estado entre os casos.

Veja também

Guia: Mocks e dublês de teste →Ferramenta: Postman / Newman →