sinonjs/sinon

Test spies, stubs and mocks for JavaScript.

9,756

stars

3,618

commits

JavaScript

primary language

Sep 3, 2026

updated

sinonjs.org/
javascript
sinon
stub
stubs
tdd
test-driven-development
test-spies
unit-testing
Browse cluster: Testing frameworks across languages

README

Sinon.JS
Sinon.JS

Standalone and test framework agnostic JavaScript test spies, stubs and mocks (pronounced "sigh-non", named after Sinon, the warrior).

npm version Sauce Test Status Codecov status OpenCollective OpenCollective npm downloads per month CDNJS version Contributor Covenant

Compatibility

For details on compatibility and browser support, please see COMPATIBILITY.md

Installation

via npm

$ npm install sinon

or via Sinon's browser builds available for download on the homepage. There are also npm based CDNs one can use.

Usage

See the sinon project homepage for documentation on usage.

If you have questions that are not covered by the documentation, you can check out the sinon tag on Stack Overflow.

Goals

  • No global pollution
  • Easy to use
  • Require minimal “integration”
  • Easy to embed seamlessly with any testing framework
  • Easily fake any interface
  • Ship with ready-to-use fakes for timers

Contribute?

See CONTRIBUTING.md for details on how you can contribute to Sinon.JS. Artifact-first contract tests are used to protect public APIs during migration. The lib/ directory is generated build output and is not committed to the repository; run npm run build to regenerate it locally when needed.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]

Licence

Sinon.js was released under BSD-3

Contributors

(top 30 of 338)

mroderick

995 commits

fatso83

710 commits

cjohansen

642 commits

mantoni

253 commits

sinonjs/sinon

Test spies, stubs and mocks for JavaScript.

9,756

stars

3,618

commits

JavaScript

primary language

Sep 3, 2026

updated

sinonjs.org/
javascript
sinon
stub
stubs
tdd
test-driven-development
test-spies
unit-testing
Browse cluster: Testing frameworks across languages

README

Sinon.JS
Sinon.JS

Standalone and test framework agnostic JavaScript test spies, stubs and mocks (pronounced "sigh-non", named after Sinon, the warrior).

npm version Sauce Test Status Codecov status OpenCollective OpenCollective npm downloads per month CDNJS version Contributor Covenant

Compatibility

For details on compatibility and browser support, please see COMPATIBILITY.md

Installation

via npm

$ npm install sinon

or via Sinon's browser builds available for download on the homepage. There are also npm based CDNs one can use.

Usage

See the sinon project homepage for documentation on usage.

If you have questions that are not covered by the documentation, you can check out the sinon tag on Stack Overflow.

Goals

  • No global pollution
  • Easy to use
  • Require minimal “integration”
  • Easy to embed seamlessly with any testing framework
  • Easily fake any interface
  • Ship with ready-to-use fakes for timers

Contribute?

See CONTRIBUTING.md for details on how you can contribute to Sinon.JS. Artifact-first contract tests are used to protect public APIs during migration. The lib/ directory is generated build output and is not committed to the repository; run npm run build to regenerate it locally when needed.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [Become a sponsor]

Licence

Sinon.js was released under BSD-3

Contributors

(top 30 of 338)

mroderick

995 commits

fatso83

710 commits

cjohansen

642 commits

mantoni

253 commits

Languages

JavaScript

99.6%