Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Mocha param

Parameterized tests for Mocha.

npm install --save-dev mocha-param

New in Version 2.0.0

  • The tested value can now be included in the description for each test.
  • Optionally use require('mocha-param') rather than require('mocha-param').itParam;

Basic Usage

Simply use 'itParam' instead of the standard mocha 'it' function and pass in an array of data.

varitParam=require('mocha-param');// We have used chai as an assertion library but you can use any.varexpect=require('chai').expect;// A Simple sync example taking an array as a parameter.// 'value' is each value in the arraydescribe("basic mocha test with data",function(){itParam("test value is a number",[1,2,3],function(value){expect(value).to.be.a('number');})})

Result:

 basic mocha test with data
✓ test value is a number
✓ test value is a number
✓ test value is a number
3 passing (25ms)

Add the values being tested into the test descriptions

To display the values being passed into your tests, use "${value}" as part of the test description.

describe("basic mocha test with data",function(){itParam("test value ${value} is a number",[1,2,3],function(value){expect(value).to.be.a('number');})})

Result:

 basic mocha test with data
✓ test value 1 is a number
✓ test value 2 is a number
✓ test value 3 is a number
3 passing (25ms)

Async

Standard async mocha tests take a 'done' parameter which is called when execution is finished. mocha-param works the same.

// A Simple async example taking an array and calling done()// 'value' each value in the array// 'done' is the standard mocha done callbackdescribe("async mocha test with data",function(){itParam("test value ${value} is a number",[1,2,3],function(done,value){expect(value).to.be.a('number');done();})})

Result:

 async mocha test with data
✓ test value 1 is a number
✓ test value 2 is a number
✓ test value 3 is a number
3 passing (17ms)

Array Objects

The array can contain anything that you like. Nested values to be displayed in the test description can be accessed with ${value.<property>}

varmyData=[{name: 'rob',age: 23},{name: 'sally',age: 29}];describe("test that person objects are older than 20",function(){itParam("test person ${value.name} (age ${value.age}) in the array",myData,function(person){expect(person.age).to.be.greaterThan(20);})})

Result:

 test that person objects are older than 20
✓ test person rob (age 23) in the array
✓ test person sally (age 29) in the array
2 passing (14ms)

About

Parameterized tests for Mocha

Resources

Stars

36 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages