bustermove

A super-simple drop-in replacement for Buster running in Node, using node-tap as a test runner

npm install bustermove
3 downloads in the last day
10 downloads in the last week
73 downloads in the last month

BusterMove Build Status

NPM

Hammer Time

A simple drop-in replacement for Buster in Node.js.

Uses node-tap as the test runner when in Node and tape when used packaged in Browserify (yes, that's right! You can run TAP tests, written in Buster-style, in the browser! That's surely worth an M.C. Hammer dance?).

Supports basic Buster functionality, including Sinon and referee integration and structured test suites:

var buster = require('bustermove')
  , assert = buster.assert // 'referee' is the new name for buster-assert
  , refute = buster.refute

buster.testCase('My funky tests', {
    'setUp': function (done) {
      // .. some setup stuff, run before each test, including nested tests
      done()
    }

  , 'tearDown': function (done) {
      // .. some teardown stuff, run after each test, including nested tests
      done()
    }

  , 'test something': function (done) {
      // .. whatever you're testing

      // each of these will be automatically cleaned up after the test is run
      var spy  = this.spy()
        , stub = this.stub()
        , mock = this.mock()

      done()
    }

  , 'nested': {
        'setUp': function (done) {
          // .. run after the parent setUp but before each of the nested tests
          done()          
        }

        // tearDown if you like

      , 'test nested': function (done) {
          // .. something else to test
          done()
        }
    }
})

You then run the test with either node ./tests.js or if you like, tap *-tests.js as it creates node-tap compatible tests.

Currently only this.spy(), this.stub() and this.mock() are supported in the sandbox but it's possible to make it more complete. Send me a pull request if you need it.

Licence

BusterMove is Copyright (c) 2012 Rod Vagg @rvagg and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.

npm loves you