Test spies, stubs and mocks for JavaScript.
JavaScript Ruby Shell
Latest commit 1760b8c Jan 11, 2017 @fatso83 fatso83 committed on GitHub Merge pull request #1242 from Floby/add-documentation-for-promise-stub
Add documentation for .rejects() and .resolves()



npm version Join the chat at https://gitter.im/sinonjs/sinon Build status bitHound Score Sauce Test Status Coverage Status

Standalone and test framework agnostic JavaScript test spies, stubs and mocks (pronounced "sigh-non").

Sauce Test Status


via npm (node package manager)

$ npm install sinon

or via sinon's browser builds available for download on the homepage.


See the sinon project homepage for documentation on usage.

If you have questions that are not covered by the documentation, please post them to the Sinon.JS mailing list or drop by #sinon.js on irc.freenode.net:6667 or the Gitter channel.

Important: Sinon v1.x does not work with AMD/CommonJS Bundlers!

Sinon.JS v1.x as source doesn't work with AMD loaders / RequireJS / Webpack / Browserify. For that you will have to use a pre-built version. You can either build it yourself or get a numbered version from http://sinonjs.org.

This has been resolved in Sinon v2.x; Please don't report this as a bug.


  • 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 XMLHttpRequest, timers and more


See CONTRIBUTING.md for details on how you can contribute to Sinon.JS


Sinon.js was released under BSD-3