Skip to content

Use docstring-like data tables in JavaScript tests, similar to Cucumber's Scenario Outline Examples: or Spock where: blocks.

License

Notifications You must be signed in to change notification settings

dfkaye/wheredoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wheredoc

Use docstring-like data tables in JavaScript tests, similar to Cucumber's Scenario Outline Examples: or Spock where: blocks.

describe("Using Mocha and Chai.expect", (done) => {
  function spec(a, b, c) {
    expect(c).to.equal(a + b)

    where: `
      a  |  b  |  c
      1  |  2  |  3
      4  | -5  | -1
    `;
  }

  where(spec).forEach({ params, test } => {
    var { a, b, c } = params

    it(`${c} should equal ${a} + ${b}.`, test)
  })

  done()
})

Scenarios

The where(spec) call returns an array of scenarios (or errors - more on that elsewhere). A scenario contains a params map of key-value pairs, and a test function.

In cases where the testing library uses a flattened pattern, such as QUnit, and Tape, you can define the test name or message in the spec or test function itself, and call the scenario test directly in the iteration callback.

In cases where the testing library uses the describe-it pattern, such as Mocha and Jasmine, you can define the test name in each scenario iteration function, then pass both the name and the test function, e.g., as it(name, test).

Read more about this in the library examples document.

Requirements

ES2015 module support (i.e., JavaScript import statements):

Install

  • from npm: npm install wheredoc
  • from github: git clone https://github.com/dfkaye/wheredoc.git

Main test suite

Created on Node.js, version 14.13.0, using Mocha 8.1.3 and Chai 4.2.0.

Run with npm test

Example suites on Node.js

These have both passing and failing examples.

  • mocha (using chai): npm run mocha-node
  • qunit (using qunit-tap): npm run qunit-node
  • tape (using tape-describe): npm run tape

Browser example suites

The browser suites run with live-server and download the testing libraries from https://unpkg.com. You should install live-server globally, npm install -g live-server, before running these examples.

These have both passing and failing examples.

  • mocha (using chai): npm run mocha
  • qunit: npm run qunit

Further Documentation

License

MIT 2020

About

Use docstring-like data tables in JavaScript tests, similar to Cucumber's Scenario Outline Examples: or Spock where: blocks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published