Wondering what’s next for npm?Check out our public roadmap! »

    mocha-sinon

    2.1.2 • Public • Published

    mocha-sinon

    Build Status

    Integration between mocha and sinon, allowing for automatic cleanup of spies

    What you should do instead of using this module

    This module is stupidly simple. You can do it yourself and have one fewer dependency with:

    // require sinon somehow and in your test helper, do:
     
    beforeEach(function() {
      if (null == this.sinon) {
        this.sinon = sinon.sandbox.create();
      } else {
        this.sinon.restore();
      }
    });

    Installation

    via npm:

    $ npm install --save-dev mocha-sinon
    

    Usage

    Server-side

    Require it somewhere in your spec helper file (easier, better)

    require('mocha-sinon');

    Using mocha's flakey --watch flag

    For background, please see issue #1 on this project.

    If you use mocha's flakey watch flag, there is experimental support for it. Note that the first method of requiring the mocha-sinon is the best way to do it.

    You can put the following block in your spec helper and it might work:

    require('mocha-sinon')();

    Note that the difference between this method and the first method is that this is calling mocha-sinon's exported function.

    Browser-side

    Source the mocha-sinon file after you have sourced mocha and sinon, and it will "do the right thing"

    Unfortunately, I'm not familiar with requirejs, so mocha-sinon does not yet support requirejs. Pull requests are welcome, though.

    Example

    var child_process = require('child_process')
      , events        = require('events')
      , chai          = require('chai')
      , expect        = chai.expect
    ;
     
    chai.use(require('sinon-chai'));
    require('mocha-sinon');
     
    describe('a shell command', function(){
      beforeEach(function(){
        var fakeChild = this.fakeChild = {
          stdout: new events.EventEmitter()
        };
     
        this.sinon.stub(child_process, 'spawn', function(){
          return fakeChild;
        });
      });
     
      it('gets called', function(done){
        someFunction(function(err){
          expect(child_process.spawn).to.have.been.calledWith('/usr/bin/env', ['rm', '-rf', '/']);
        });
      });
    });

    Install

    npm i mocha-sinon

    DownloadsWeekly Downloads

    8,481

    Version

    2.1.2

    License

    MIT

    Unpacked Size

    7.95 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar