Sobre el proyecto

Sinon.JS es una biblioteca popular de pruebas de JavaScript que proporciona un conjunto completo de herramientas para escribir pruebas unitarias. La biblioteca ofrece tres conceptos centrales: spies, stubs y mocks. Los spies envuelven funciones para registrar llamadas y argumentos, los stubs reemplazan funciones con comportamiento controlado, y los mocks combinan ambos para verificar el comportamiento esperado. La biblioteca está diseñada para ser independiente y agnóstica al marco de pruebas, lo que significa que se puede usar con cualquier marco de pruebas como Mocha, Jasmine, QUnit o Jest. Su objetivo es no contaminar el ámbito global, ser fácil de usar, requerir una integración mínima y permitir una incrustación sin problemas con cualquier marco de pruebas. La instalación es sencilla a través de npm (`npm install sinon`) o mediante compilaciones para navegador disponibles en la página principal del proyecto. La biblioteca también admite CDN basados en npm para una integración fácil. Las características clave incluyen: - Spies: Registran llamadas a funciones, argumentos y valores de retorno - Stubs: Reemplazan funciones con comportamiento controlado - Mocks: Combinan spies y stubs para verificar el comportamiento esperado - Temporizadores falsos: Falsificaciones listas para setTimeout, setInterval, Date, etc. - Sin contaminación global: API limpia que no contamina el espacio de nombres global El proyecto sigue una licencia BSD-3 y se mantiene activamente con contribuciones de la comunidad. Utiliza pruebas de contrato basadas en artefactos para proteger las API públicas durante la migración. El directorio `lib/` contiene la salida de compilación generada y no se compromete en el repositorio; los desarrolladores pueden regenerarla localmente usando `npm run build`. Sinon.JS se usa ampliamente en el ecosistema de JavaScript para escribir pruebas unitarias confiables y mantenibles. Su API limpia y su diseño agnóstico al marco lo convierten en una opción versátil para desarrolladores que trabajan en diferentes entornos de pruebas.