tape-plus
Nested tape tests with before/after, async, and promise support
Last updated 4 years ago by rstacruz .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install tape-plus 
SYNC missed versions from official npm registry.

tape-plus

Nested tape tests with before/after, async, and promise support

tape-plus is a wrapper for tape for a batteries-included experience for writing elegant tape tests. It provides a user-friendly API modelled after Mocha.

Install

tape is a peer dependency of tape-plus. Install them together.

npm install --save-dev tape tape-plus

Usage

Use require('tape-plus') as a substitute for require('tape'). The only difference is you don't need to use t.end() anymore.

var test = require('tape-plus')

test('adding numbers', t => {
  t.equal(10, 10)
})

Grouped tests

Use test.group to define test groups.

var group = require('tape-plus').group

group('add()', test => {
  test('adding', t => {
    t.equal(add(1, 1), 2)
  })

  test('subtracting', t => {
    t.equal(add(10, -1), 9)
  })
})

Nested groups

You can also make groups within groups. Just call test.group again.

var group = require('tape-plus').group

group('add()', test => {
  test.group('adding', test => {
    test('positive numbers', t => {
      t.equal(add(10, 10), 20)
    })

    test('negative numbers', t => {
      t.equal(add(-10, -10), -20)
    })
  })
})

Before/after hooks

Use test.beforeEach and test.afterEach to add hooks.

var group = require('tape-plus').group

group('add()', test => {
  var base

  test.beforeEach(t => {
    base = 10
  })

  test.afterEach(t => {
    // ...
  })

  test('adds numbers', t => {
    t.equal(add(base, 1), 11)
  })

  test('subtracts numbers', t => {
    t.equal(add(base, -1), 9)
  })
})

Asynchronous tests

Pass a second parameter to test() and it'll be a callback, Mocha-style.

var group = require('tape-plus').group

group('add()', test => {
  var base

  test('async callback', (t, next) => {
    setTimeout(() => {
      t.equal(1, 1)
      next()
    })
  })
})

Promises

Return a promise from inside a test() block. Rejected promises will be an error.

var group = require('tape-plus').group

test('async callback', t => {
  return fetch('http://site.com')
  .then(data => {
    t.equal(data, '<html></html>')
  })
})

BDD interface

test.describe is an alias for test.group.

var describe = require('tape-plus').describe

describe('add()', it => {
  it('adds numbers', t => {
    t.equal(add(1, 1), 2)
  })

  it('subtracts numbers', t => {
    t.equal(add(10, -1), 9)
  })
})

With other tape wrappers

tape-plus is implemented as a decorator, so you can mix it in with other stuff. Here's an example with extend-tape.

var test = require('tape')

test = require('extend-tape')(tape, { /*...*/ })
test = require('tape-plus/wrap')(tape)

Thanks

tape-plus © 2016+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).

ricostacruz.com  ·  GitHub @rstacruz  ·  Twitter @rstacruz

Current Tags

  • 1.0.0                                ...           latest (4 years ago)

1 Versions

  • 1.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 2
Dependencies (1)
Dev Dependencies (1)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |