lab
Esc

Prueba con

↑↓ para moverte · Enter para abrir · también en /buscar?q= para agentes

configuración intermedio claude-codeapitestingemulación

Emulate: prueba integraciones contra servicios locales con estado

Ensaya flujos de API en desarrollo o CI con datos de prueba y sin depender de cuentas reales de cada proveedor.

✓ verificado el 27 oct 2026

Instrucciones para tu agente

Esto es lo que se copia. Pégaselo a tu agente y te lo monta paso a paso.

O ábrelo directamente en ClaudeChatGPT

Pega este texto a tu agente (Claude Code, Codex, OpenCode, Hermes o el que uses) y dile «ayúdame a montarlo». Son los pasos para ponerlo en marcha; el porqué de cada pieza está en la guía completa.


Para el agente: cómo acompañar al usuario

  1. Pregunta primero para qué lo quiere. Si su objetivo no necesita algún paso, sáltalo.
  2. Antes de instalar, comprueba lo que ya tiene (versiones, claves, sistema operativo).
  3. Avanza un paso cada vez: explica en una frase qué vas a hacer y deja que el usuario lo ejecute o lo apruebe.
  4. Tras cada paso, comprueba que funcionó antes de seguir. Si falla, para y explica el error.
  5. No inventes comandos ni opciones: si la documentación del proyecto contradice estos pasos, manda la documentación.
  6. Al terminar, haz una prueba real con el objetivo del usuario y dile dónde profundizar.

Pasos de configuración

Paso 1: consulta los servicios

Comprueba que tienes Node.js ≥24 y npm/npx disponibles.

npx emulate list

Paso 2: inicia una selección

npx emulate --service vercel,github

Paso 3: dirige tu prueba

Configura tu aplicación con las URLs locales que imprime la CLI y los datos de prueba del servicio. Para una prueba completa independiente de tu aplicación, crea una carpeta de ensayo, ejecuta npm install emulate y guarda como prueba.mjs este ejemplo, adaptado de Custom Emulators para imprimir el estado antes y después:

import { defineEmulator, createEmulator } from 'emulate';

const acme = defineEmulator({
  name: 'acme',
  state: () => ({ anvils: 100 }),
  setup({ app, state }) {
    app.get('/inventory', (c) => c.json(state));
    app.post('/orders', (c) => {
      if (!state.anvils) return c.json({ error: 'sold_out' }, 409);
      state.anvils -= 1;
      return c.json({ shipped: 'anvil', to: 'coyote' }, 201);
    });
  },
});
const api = await createEmulator({ service: acme, listen: false });
try {
  console.log(await (await api.request("/inventory")).json());
  await api.request("/orders", { method: "POST" });
  console.log(await (await api.request("/inventory")).json());
  const checkpoint = api.snapshot();
  await api.reset();
  await api.restore(checkpoint);
} finally {
  await api.close();
}

Ese ejemplo define las rutas /inventory y /orders y comienza con 100 unidades. Ejecuta node prueba.mjs: las lecturas deben mostrar 100 y 99. El modo listen: false prueba las rutas en memoria; la CLI anterior sirve para conectar una aplicación por HTTP.

Comprobación

Comprueba que la aplicación usa los endpoints locales y que una mutación aparece en el estado del emulador. Repite tras reiniciar el escenario.

Si algo falla

Si un endpoint falla, confirma que forma parte de la cobertura del servicio. Si no puedes instalar sin red, prepara el paquete previamente. No sustituyas datos de prueba por credenciales reales.

ver en .md ¿Prefieres el recurso entero?

Qué es

Emulate es un proyecto de Vercel Labs que implementa servicios HTTP locales para simular APIs externas. Mantiene estado y permite sembrar datos, reiniciar escenarios e inspeccionar solicitudes.

Para qué te sirve

  • Cuando una prueba necesita crear y consultar recursos sin tocar una cuenta real.
  • Cuando el entorno del agente no tiene salida a Internet.
  • Cuando quieres repetir un escenario con el mismo estado inicial.

Cómo funciona

La CLI inicia servicios en loopback con puertos distintos. Cada emulador define rutas y comportamiento; el núcleo comparte almacenamiento y utilidades. También hay una API programática y adaptadores para frameworks. Los emuladores personalizados usan TypeScript y se pueden probar sin abrir un puerto.

Antes de empezar

Necesitas Node.js ≥24 y npm/npx, según el manifiesto del proyecto para el inicio rápido. Instala o prepara los paquetes antes de entrar en un entorno sin red: la primera descarga no es una ejecución completamente sin red. Tu aplicación debe apuntar a las URLs locales.

Límites y alternativas

La emulación no cubre todas las operaciones ni las políticas reales de cada servicio. Por ejemplo, el README distingue límites de autenticación y autorización en AWS. Pasar una prueba local no demuestra permisos correctos en producción. Compara mocks simples si solo necesitas respuestas fijas.

Recursos