Estudio de Sinon.js

Testing ⭐ 9k stars
Spies, stubs y mocks independientes para JavaScript.

🤖 Skill de implementación: frontend-desarrollo (regla: solo catálogo de las 66 · versiones por ERR/MEJ)

1 · Características

2 · Casos de uso

3 · Script minimalista

Instalación: npm i -D sinon

import sinon from 'sinon';
const spy = sinon.spy();
spy(1, 2);
console.log(spy.calledWith(1, 2)); // true

4 · Casos de uso (implementación real)

Dos casos de uso comunes implementados con esta librería.

1. Stub de función

Sustituye una dependencia en un test.

import sinon from 'sinon';

const api = { guardar: () => null };
const stub = sinon.stub(api, 'guardar').returns({ ok: true });

// En el código bajo prueba se llama api.guardar() y devuelve el stub
console.log(stub.calledOnce); // true
🔁 Cómo funciona: `sinon.stub` reemplaza el método con un comportamiento controlado y registra las llamadas.

2. Spy + reloj

Verifica llamadas y simula el tiempo.

import sinon from 'sinon';

const fn = sinon.spy();
fn(1); fn(2);
console.log(fn.callCount);            // 2
console.log(fn.calledWith(2));        // true

const reloj = sinon.useFakeTimers();  // controla setTimeout/setInterval
reloj.tick(1000);                      // avanza 1s
reloj.restore();
🔁 Cómo funciona: `spy` envuelve y observa llamadas; `useFakeTimers` simula el tiempo en tests.

5 · Referencia

CategoríaTesting
Stars (GitHub)⭐ 9k
Sitio oficialhttps://sinonjs.org/
GitHubhttps://github.com/sinonjs/sinon
Instalaciónnpm i -D sinon
RelacionadasJest · Mocha · Jasmine
📦 Regla de librerías (local primero): revisar C:\Users\TUF\Documents\librerías\local\ antes de descargar. Volver al índice de los 66 estudios.