2.0.1 • Published 4 years ago

mocha-param v2.0.1

Weekly downloads
10,709
License
MIT
Repository
github
Last release
4 years ago

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.

var itParam = require('mocha-param');
// We have used chai as an assertion library but you can use any.
var expect = require('chai').expect;

// A Simple sync example taking an array as a parameter.
// 'value' is each value in the array
describe("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 callback
describe("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>}

var myData = [{ 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)
@dry-stack/testing@itentialopensource/adapter-moogsoft_sas@infinitebrahmanuniverse/nolb-moch@everything-registry/sub-chunk-2186@hmcts/one-per-page-test-suite@itentialopensource/adapter-nokia_nsp_nfm_p@itentialopensource/adapter-nokia_nsp_sdn@itentialopensource/adapter-nokia_vitalqip@itentialopensource/adapter-onap_sdc@itentialopensource/adapter-onap_so@itentialopensource/adapter-op5@itentialopensource/adapter-opengear_lighthouse@itentialopensource/adapter-openstack_cinder@itentialopensource/adapter-openstack_glance@itentialopensource/adapter-openstack_keystone@itentialopensource/adapter-openstack_neutron@itentialopensource/adapter-openstack_nova@itentialopensource/adapter-opsgenie@itentialopensource/adapter-oracle_cloud@itentialopensource/adapter-owasp_zap@itentialopensource/adapter-pagerduty@itentialopensource/adapter-paloalto_prismacloud@itentialopensource/adapter-panorama@itentialopensource/adapter-panorama_os@itentialopensource/adapter-firemon_securitymanager@itentialopensource/adapter-flexiwan@itentialopensource/adapter-fortimanager@itentialopensource/adapter-forwardnetworks@itentialopensource/adapter-gcp_compute@itentialopensource/adapter-github@itentialopensource/adapter-gitlab@itentialopensource/adapter-glds_customerexperiencegateway@itentialopensource/adapter-godaddy@itentialopensource/adapter-gogetssl@itentialopensource/adapter-google_drive@itentialopensource/adapter-hashicorp_vault@itentialopensource/adapter-hyas_protect@itentialopensource/adapter-iap@itentialopensource/adapter-imperva@itentialopensource/adapter-incognito@itentialopensource/adapter-incognito_soap@itentialopensource/adapter-infoblox@itentialopensource/adapter-infoblox_netmri@itentialopensource/adapter-ipfabric@itentialopensource/adapter-itop@itentialopensource/adapter-jenkins@itentialopensource/adapter-jira@itentialopensource/adapter-juniper_cso@itentialopensource/adapter-juniper_mist@itentialopensource/adapter-juniper_northstar@itentialopensource/adapter-moogsoft@itentialopensource/adapter-moogsoft_saas@itentialopensource/adapter-morpheus@itentialopensource/adapter-msteams@itentialopensource/adapter-nautobot@itentialopensource/adapter-netbox@itentialopensource/adapter-netbox_v210@itentialopensource/adapter-netbox_v33@itentialopensource/adapter-netbrain@itentialopensource/adapter-netrounds@itentialopensource/adapter-kentik@itentialopensource/adapter-menmice_micetro@itentialopensource/adapter-meraki@itentialopensource/adapter-metaswitch@itentialopensource/adapter-microsoft_dynamics@itentialopensource/adapter-microsoft_graph@itentialopensource/adapter-microsoft_office365@itentialopensource/adapter-ns1_cloud@itentialopensource/adapter-ns1_enterprise@itentialopensource/adapter-nvd@itentialopensource/adapter-okta@itentialopensource/adapter-onap_aai@itentialopensource/adapter-onap_appc@itentialopensource/adapter-onap_dcae@itentialopensource/adapter-netterrain@itentialopensource/adapter-nexus_repository@itentialopensource/adapter-nokia_altiplano@itentialopensource/adapter-nokia_nsp_device_administrator@itentialopensource/adapter-nokia_nsp_device_configurator@itentialopensource/adapter-nokia_nsp_network@itentialopensource/adapter-kentik_v5@itentialopensource/adapter-keygen@itentialopensource/adapter-kubernetes@itentialopensource/adapter-logicmonitor@itentialopensource/adapter-f5_velos@itentialopensource/adapter-paragon_active_assurance@itentialopensource/adapter-paragon_dcs@itentialopensource/adapter-paragon_dpm@itentialopensource/adapter-paragon_ems_device_manager@itentialopensource/adapter-paragon_ems_device_model@itentialopensource/adapter-paragon_iam@itentialopensource/adapter-paragon_insights@itentialopensource/adapter-paragon_job_store@itentialopensource/adapter-paragon_pathfinder@itentialopensource/adapter-phpipam@itentialopensource/adapter-pitney_bowes@itentialopensource/adapter-prtg@itentialopensource/adapter-psirt@itentialopensource/adapter-psxapiservice@itentialopensource/adapter-puppet
2.0.1

4 years ago

2.0.0

6 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago