Об этом проекте

Sinon.JS — популярная библиотека для тестирования на JavaScript, предоставляющая исчерпывающий набор инструментов для написания модульных тестов. Библиотека предлагает три ключевые концепции: шпионы, заглушки и макеты. Шпионы оборачивают функции, записывая вызовы и аргументы, заглушки заменяют функции контролируемым поведением, а макеты объединяют оба подхода для проверки ожидаемого поведения. Библиотека спроектирована как независимая и не зависящая от тестового фреймворка, что позволяет использовать её с любыми фреймворками, такими как Mocha, Jasmine, QUnit или Jest. Она стремится к отсутствию загрязнения глобальной области видимости, простоте использования, минимальным требованиям к интеграции и бесшовной встраиваемости в любой тестовый фреймворк. Установка выполняется просто через npm (`npm install sinon`) или с помощью браузерных сборок, доступных на домашней странице проекта. Библиотека также поддерживает CDN на основе npm для упрощённой интеграции. Ключевые возможности включают: - Шпионы: запись вызовов функций, аргументов и возвращаемых значений. - Заглушки: замена функций контролируемым поведением. - Макеты: объединение шпионов и заглушек для проверки ожидаемого поведения. - Поддельные таймеры: готовые подделки для setTimeout, setInterval, Date и т. д. - Отсутствие загрязнения глобальной области видимости: чистый API, не загрязняющий глобальное пространство имён. Проект распространяется под лицензией BSD-3 и активно поддерживается при участии сообщества. Для защиты публичных API во время миграции используются контрактные тесты на основе артефактов. Каталог `lib/` содержит сгенерированный результат сборки и не фиксируется в репозитории; разработчики могут пересобрать его локально командой `npm run build`. Sinon.JS широко используется в экосистеме JavaScript для написания надёжных и легко поддерживаемых модульных тестов. Чистый API и независимость от фреймворков делают её универсальным выбором для разработчиков, работающих в разных тестовых средах.