This is Devhints.io cheatsheets — a collection of cheatsheets I've written.

# Sinon-chai

- Sinon-chai

### Initialization

    var sinon = require('sinon');
    require('chai').use(require('sinon-chai'));

### Assert

    expect(spy).called
    expect(spy).calledOnce
    expect(spy).calledTwice
    expect(spy).calledThrice
    expect(spy).calledBefore
    expect(spy).calledAfter
    expect(spy).calledWithNew
    expect(spy).alwaysCalledWithNew
    expect(spy).calledOn
    expect(spy).alwaysCalledOn
    expect(spy).calledWith
    expect(spy).alwaysCalledWith
    expect(spy).calledWithExactly
    expect(spy).alwaysCalledWithExactly
    expect(spy).calledWithMatch
    expect(spy).alwaysCalledWithMatch
    expect(spy).returned
    expect(spy).alwaysReturned
    expect(spy).threw
    expect(spy).alwaysThrew

### Should

    spy.should.have.been.called
    spy.should.have.been.calledOnce
    spy.should.have.been.calledTwice
    spy.should.have.been.calledThrice
    spy1.should.have.been.calledBefore(spy2)
    spy1.should.have.been.calledAfter(spy2)
    spy.should.have.been.calledWithNew
    spy.should.always.have.been.calledWithNew
    spy.should.have.been.calledOn(context)
    spy.should.always.have.been.calledOn(context)
    spy.should.have.been.calledWith(...args)
    spy.should.always.have.been.calledWith(...args)
    spy.should.always.have.been.calledWithExactly(...args)
    spy.should.always.have.been.calledWithExactly(...args)
    spy.should.have.been.calledWithMatch(...args)
    spy.should.always.have.been.calledWithMatch(...args)
    spy.should.have.returned(returnVal)
    spy.should.have.always.returned(returnVal)
    spy.should.have.thrown(errorObjOrErrorTypeStringOrNothing)
    spy.should.have.always.thrown(errorObjOrErrorTypeStringOrNothing)

Devhints.io cheatsheets is a collection of cheatsheets I've written over the years. Suggestions and corrections? Send them in. I'm Rico Sta. Cruz. Check out my Today I learned blog for more.