Skip to content
Latchkey

MSW vs nock: qual ferramenta de mock de API?

MSW intercepta requests na camada de rede tanto para browser quanto para Node; nock intercepta HTTP do Node no nível de módulo para testes de servidor.

O MSW (Mock Service Worker) define handlers de request uma vez e intercepta na fronteira da rede, funcionando no browser (via Service Worker) e no Node, de modo que os mesmos mocks servem para unit tests, testes de componente e até dev local. O nock aplica patch na camada HTTP do Node para interceptar e verificar requests de saída, focado puramente em testes de Node/servidor. O MSW ganha em reuso entre ambientes e fidelidade; o nock ganha como um mocker de HTTP do Node focado e maduro.

MSWnock
AmbientesBrowser + NodeApenas Node
InterceptaçãoCamada de redeMódulo HTTP do Node
ReusoTestes + dev + storybookTestes de servidor
FidelidadeAlta (caminho de rede real)Nível de módulo
Melhor paraMocks universais frontend/backendMock de testes HTTP no Node

Caso de uso e escopo

O MSW se encaixa em times que querem um único conjunto de handlers entre testes de browser, testes de componente, Storybook e desenvolvimento local. O nock se encaixa em suítes de teste de Node/servidor que só precisam interceptar e verificar HTTP de saída no nível de módulo. O alcance entre ambientes do MSW é seu destaque; o foco do nock o mantém simples para mocks apenas de servidor.

Testes e CI

Ambos rodam headless no CI; a integração com Node do MSW cobre testes de componente e unit tests, o nock cobre chamadas de servidor. Qualquer um roda em managed runners, onde runners mais rápidos encurtam suítes de integração mockadas.

O veredito

Quer uma única camada de mock entre browser, Node, testes e dev: MSW. Quer um interceptor HTTP do Node focado para testes de servidor: nock. O MSW é a escolha universal e versátil; o nock é o especialista enxuto apenas para Node.

Guias relacionados