Alternativa a Mock Service Worker (MSW): cuándo usar una plataforma completa de mocking de API

Mock Service Worker es ideal para las pruebas de frontend. Aprende dónde encaja MSW, dónde no, y la mejor alternativa a MSW para mocks compartidos y basados en esquemas.

Ashley Innocent

Ashley Innocent

24 June 2026

Alternativa a Mock Service Worker (MSW): cuándo usar una plataforma completa de mocking de API

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

Si escribes pruebas de frontend, probablemente te has encontrado con Mock Service Worker (MSW). Es la biblioteca de referencia para interceptar solicitudes dentro del navegador y Node, y para pruebas unitarias y de componentes es difícil de superar. Esta guía explica qué hace bien MSW, dónde deja de escalar y cuándo una plataforma alojada de simulación de API tiene más sentido.

button

¿Qué es Mock Service Worker?

Mock Service Worker es una biblioteca de JavaScript que intercepta solicitudes de red en la fuente. En el navegador, registra un Service Worker que intercepta las llamadas salientes a fetch y XMLHttpRequest. En Node, parchea la capa de solicitud para que los mismos manejadores se ejecuten en Jest o Vitest. Se escriben manejadores de solicitudes que coinciden con un método y una ruta, y luego se devuelve la respuesta deseada.

El diseño es ingenioso. El código de tu aplicación sigue llamando a las API de red reales. MSW se interpone y responde, por lo que no necesitas simular fetch ni cambiar tu cliente HTTP. Las mismas definiciones de simulacro funcionan en pruebas y en una compilación de desarrollo en ejecución, por eso tantos equipos de React y Vue lo utilizan. Puedes consultar el código fuente de MSW en GitHub para ver cómo funciona la capa de intercepción.

Un manejador típico se ve así:

import { http, HttpResponse } from 'msw'

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

Esa es toda su atracción. El simulacro vive junto a tu código, está controlado por versiones con tus pruebas y se ejecuta dondequiera que se ejecute tu JavaScript.

Dónde destaca MSW

MSW es una excelente opción cuando el simulacro y el consumidor viven en la misma base de código. Algunos casos en los que es realmente la herramienta adecuada:

Si esa describe tu situación, probablemente no necesites nada más. MSW es gratuito, de código abierto y fue creado exactamente para esto.

Dónde MSW comienza a flaquear

Lo mismo que hace que MSW sea excelente en un solo repositorio, los simulacros que viven como código en ese repositorio, es lo que lo limita una vez que más personas se involucran. Aquí es donde los equipos tienden a superarlo.

Consumidores que no son JavaScript

Los manejadores de MSW son JavaScript. Si tu equipo móvil escribe Swift o Kotlin, o tus pruebas de integración de backend se ejecutan en Go o Python, no pueden importar tus manejadores. Necesitarían sus propios simulacros, que se desviarían de los tuyos. Un servidor de simulación agnóstico al lenguaje que habla HTTP a través de una URL real funciona para cualquier cliente, sin importar el lenguaje.

Simulacros compartidos y siempre activos

MSW se ejecuta dentro de un proceso. No hay una URL compartida a la que un ingeniero de control de calidad, un diseñador o un equipo asociado pueda acceder desde su propia máquina. En el momento en que quieras un punto final que varias personas usen a la vez, necesitas un servidor de simulación alojado con una dirección estable, no un Service Worker vinculado a una pestaña del navegador.

Flujos de trabajo basados en el diseño y en esquemas

Si diseñas APIs en OpenAPI antes de escribir código, querrás simulacros generados automáticamente a partir de la especificación, para que el simulacro no discrepe con el contrato. MSW espera que escribas los manejadores a mano. Generar simulacros directamente desde un esquema es un modelo diferente. Puedes leer más sobre este enfoque en esta guía sobre la simulación de API y los patrones que la rodean.

Datos realistas y dinámicos a escala

MSW devuelve lo que tu manejador codifica. Para datos realistas en muchos campos, escribes esa lógica tú mismo. Las plataformas que incorporan generación estilo faker e inferencia de nombres de campo te brindan respuestas realistas sin tener que crear cada una a mano.

MSW vs. una plataforma completa de simulación de API

Aquí hay una comparación honesta. Ninguna columna es "mejor" en abstracto; resuelven problemas diferentes.

Capacidad Mock Service Worker Plataforma de API alojada (ej. Apidog)
Se ejecuta dentro de pruebas unitarias/de componentes de JS Sí, nativo No, no es una biblioteca de pruebas de JS
Agnóstico al lenguaje sobre HTTP No (solo JS) Sí, cualquier cliente
URL compartida para todo el equipo No Sí, servidor de simulación alojado
Genera simulacros desde OpenAPI Manual Automático desde el esquema
Generación de datos inteligente/dinámica Codificado a mano Integrado
Vive en tu repositorio con pruebas Almacenado en proyecto compartido
Costo Gratuito, código abierto Nivel gratuito + planes de pago

La conclusión: MSW es la opción correcta para pruebas de frontend y desarrollo local. Una plataforma como Apidog es la opción correcta cuando el simulacro debe ser compartido, agnóstico al lenguaje o impulsado por una especificación.

Apidog como complemento, no como reemplazo

Para ser claros, Apidog no es un reemplazo directo para MSW dentro de Jest o Vitest. No es una biblioteca de JavaScript que importas en un archivo de prueba. Trátalo como la capa superior a tus pruebas unitarias, el lugar donde los simulacros se convierten en un recurso compartido y agnóstico al lenguaje para todo el equipo.

Así es como se ve en la práctica. Diseñas o importas una API en Apidog, y genera un endpoint simulado automáticamente a partir del esquema. El simulacro obtiene una URL real a la que tu equipo de frontend, móvil y QA pueden llamar. Apidog rellena las respuestas con datos realistas infiriendo de los nombres de los campos, por lo que un campo llamado email devuelve un correo electrónico y createdAt devuelve una fecha. También puedes escribir reglas personalizadas cuando necesites una respuesta específica de 500 o un caso extremo particular.

Como el simulacro proviene del mismo esquema que tu diseño y pruebas, se mantiene sincronizado con el contrato. Esa es la parte que los manejadores escritos a mano no pueden garantizar. Si quieres ver cómo se compara la generación de esquema a simulacro entre herramientas, este resumen de las mejores herramientas de simulación de API pone las opciones una al lado de la otra.

Una división práctica que muchos equipos adoptan:

No estás eligiendo uno. Estás usando cada uno donde encaja. Descarga Apidog si quieres probar el lado alojado junto con tu configuración MSW existente.

Otras alternativas de MSW que vale la pena conocer

MSW no es la única biblioteca de simulación, y una plataforma no es tu única opción. Dependiendo de tu stack:

Cada uno tiene sus ventajas y desventajas. WireMock y Prism se inclinan hacia el trabajo de backend y contratos; Mockoon y json-server se inclinan hacia una configuración local rápida. Si tu obstáculo es específicamente "MSW no puede ayudar a mis compañeros de equipo que no usan JS", cualquier servidor de simulación basado en HTTP lo resuelve. Para un ángulo de frontend más amplio, mira cómo los equipos manejan la simulación de API en React con Axios.

Preguntas frecuentes

¿Es MSW gratuito?

Sí. Mock Service Worker es de código abierto bajo la licencia MIT y de uso gratuito en cualquier proyecto, comercial o no. Solo empiezas a pagar cuando te pasas a una plataforma alojada para simulacros compartidos, y herramientas como Apidog también incluyen un nivel gratuito para eso.

¿Puede Apidog reemplazar a MSW en mis pruebas unitarias?

No, y no deberías intentarlo. MSW intercepta las solicitudes dentro de tu ejecutor de pruebas de JavaScript. Apidog es una plataforma alojada, no una biblioteca importable, por lo que no puede funcionar dentro de Jest o Vitest como lo hace MSW. Usa Apidog para simulacros compartidos, entre equipos o basados en esquemas. Si te enfocas puramente en el lado del ejecutor de pruebas, este tutorial sobre cómo simular llamadas a la API cubre los enfoques dentro del código.

¿MSW funciona en Node, o solo en el navegador?

En ambos. En el navegador, MSW utiliza un Service Worker. En Node, parchea la capa de solicitud para que los mismos manejadores se ejecuten en Jest, Vitest o cualquier entorno de prueba de Node. Ese modo dual es una de sus mayores fortalezas para los equipos de JS full-stack.

¿Cuándo debería cambiar de MSW a un servidor de simulación alojado?

Cambia, o más bien añade uno, cuando el simulacro necesite ser compartido. Las señales más claras: un cliente que no es JavaScript lo necesita, varias personas necesitan la misma URL estable, o diseñas APIs priorizando la especificación y quieres que los simulacros se generen automáticamente desde OpenAPI.

Conclusión

MSW es excelente en lo que fue creado para hacer: interceptar solicitudes dentro de JavaScript para pruebas de frontend y unitarias. No intenta ser un simulacro compartido, alojado y agnóstico al lenguaje, y eso está bien. Cuando tus simulacros necesitan salir del repositorio, cuando otros lenguajes u otros equipos los necesitan, o cuando quieres que se generen a partir de una especificación, ese es el momento de añadir una plataforma completa junto a él.

Apidog maneja el lado compartido y basado en esquemas: un servidor de simulación alojado con una URL real, simulacros automáticos desde tu diseño OpenAPI y datos realistas listos para usar. Mantén MSW donde es fuerte y deja que Apidog cubra todo lo que va más allá del límite de tu ejecutor de pruebas. Descarga Apidog y apunta tu frontend a un simulacro compartido para ver la diferencia.

button

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs