¿Qué es API Mocking? Herramientas, Casos Uso, Ejemplos
API mocking simula una API sin el backend real — para dev paralelo, aislamiento tests, contract testing. Tools: Postman, WireMock, MSW.
¿Qué es API mocking?
API mocking es la práctica de crear una versión fake de una API que devuelve responses pre-definidas en vez de ejecutar lógica backend real. El mock se ve y comporta como la API real desde la perspectiva del cliente — mismas URLs, mismos formatos request/response — pero no está conectado a una base de datos, no triggea side effects y devuelve responses determinísticas.
API mocking habilita tres casos de uso principales: desarrollo paralelo, aislamiento de tests y contract testing.
Cuándo usar API mocking
- Dev frontend antes que backend esté listo.
- Tests unitarios e integración.
- Testear escenarios error.
- Trabajar offline / air-gapped.
- Evitar rate limits / costos.
- Contract testing.
- Entornos demo/sales.
Tipos de API mocking
Mocks estáticos
Misma response cada vez, sin importar input.
Mocks dinámicos
Response varía basada en request.
Mocks grabados
Capturar responses API reales a archivo, replay después.
Mocks contract
Generados desde spec OpenAPI/Swagger.
Mocks stateful
Trackear state entre requests.
Herramientas API mocking populares
| Herramienta | Mejor para | Notas |
|---|---|---|
| Postman Mock Server | Mocks rápidos desde collections existentes | Gratis |
| Mockoon | Mocks GUI desktop locales | Gratis, open-source |
| WireMock | Mocking scriptable Java-based | Maduro |
| MSW (Mock Service Worker) | Mocks browser/Node via Service Worker | Moderno |
| Mirage.js | Mocks app JS | Stateful, in-app |
| Prism (Stoplight) | Mocks OpenAPI-driven | Auto-generados desde spec |
| nock | Library Node.js HTTP mocking | Interception per-test |
| VCR (Ruby) | Grabar + replay HTTP | Test-focused |
| json-server | API REST rápida desde archivo JSON | Zero-config prototyping |
Mocking vs stubbing vs faking
| Término | Definición | Ejemplo |
|---|---|---|
| Stub | Devuelve response canned; sin comportamiento | API siempre devuelve {users: ["alice"]} |
| Mock | Stub + verifica que fue llamado correctamente | Test asserta API fue llamada 1x con X args |
| Fake | Implementación in-memory funcional | Base datos in-memory para tests |
| Spy | Wrapea call real, graba info sobre calls | Llama API real pero loguea qué se envió |
Patterns API mocking comunes
Mock server con environment switch
const API_BASE = process.env.API_BASE || 'https://api.example.com';
fetch(`${API_BASE}/users/42`);Interception MSW en tests
import { setupServer } from 'msw/node';
import { rest } from 'msw';
const server = setupServer(
rest.get('/api/users/:id', (req, res, ctx) => {
return res(ctx.json({ id: req.params.id, name: 'Alice' }));
})
);Pitfalls mocking
- Mock se desvía de la realidad.
- Sobre-reliance en mocks en CI.
- Mocks demasiado permisivos.
- Mocks no simulan latencia / errores.
- Mocks stateful muy complejos.
Contract testing: mocking hecho bien
Herramientas contract testing (Pact, Spring Cloud Contract) verifican que responses mock matcheen lo que la API real realmente devuelve.
FAQ: API mocking
¿Cuál es la diferencia entre mocking y usar API staging?
Mocks son locales, rápidos, determinísticos. APIs staging son entornos reales-pero-no-prod.
¿Debería mockear todas las APIs externas en tests?
Sí para unit tests. Para integration tests, hittear al menos algunas APIs reales.
¿Cómo mockeo responses dinámicas?
La mayoría de herramientas soportan template variables o responses programáticas.
¿Puedo mockear GraphQL o gRPC?
Sí. MSW soporta GraphQL nativamente. Para gRPC herramientas como grpc-mock.
¿Cuál es el costo de API mocking?
Mayormente gratis.
¿Los mocks ralentizan tests?
No — los aceleran. Tests con mocks corren típicamente 10-100x más rápido.
Testea mocks API bajo carga con LoadFocus
Si has construido APIs mock y quieres verificar que manejan la carga que tu API real verá, LoadFocus corre scripts JMeter y k6 desde 25+ regiones con hasta 12.500 VUs. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.