2.0.1 • Published 5 years ago

mocha-param v2.0.1

Weekly downloads
10,709
License
MIT
Repository
github
Last release
5 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@itentialopensource/adapter-aws_nfw@itentialopensource/adapter-servicenow@itentialopensource/adapter-sevone@itentialopensource/adapter-sevone_v2@itentialopensource/adapter-sharepoint@itentialopensource/adapter-silverpeak@itentialopensource/adapter-six_connect@itentialopensource/adapter-skybox@itentialopensource/adapter-slack@itentialopensource/adapter-snowflake_sql@itentialopensource/adapter-solarwinds@itentialopensource/adapter-solarwinds_servicedesk@itentialopensource/adapter-spirent_testcenter@itentialopensource/adapter-splunk@itentialopensource/adapter-steel_connect@itentialopensource/adapter-surreal_db@itentialopensource/adapter-tufin_securechange@itentialopensource/adapter-tufin_securetrack@itentialopensource/adapter-velocloud@itentialopensource/adapter-velocloud_orchestrator@itentialopensource/adapter-venafi@itentialopensource/adapter-venafi_trust_protection_platform@itentialopensource/adapter-versa_director@itentialopensource/adapter-viavi_xpertrak@itentialopensource/adapter-viptela@itentialopensource/adapter-vmware_cloud@itentialopensource/adapter-vmware_nsx_t@itentialopensource/adapter-vmware_vcenter@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@itentialopensource/adapter-qualys@itentialopensource/adapter-rackn_digital_rebar@itentialopensource/adapter-rancher@itentialopensource/adapter-redis_cloud@itentialopensource/adapter-remedy_actionrequest@itentialopensource/adapter-ringcentral@itentialopensource/adapter-symantec_mgmtcenter@itentialopensource/adapter-tapi@itentialopensource/adapter-tcpwave@itentialopensource/adapter-terraform_enterprise@itentialopensource/adapter-thales_cipher_trust_manager@itentialopensource/adapter-thingspace@itentialopensource/adapter-thousand_eyes@itentialopensource/adapter-thruk_monitoring@itentialopensource/adapter-tiger_connect@itentialopensource/adapter-tmf638_service_inventory_management@itentialopensource/adapter-tmf639_resource_inventory_management@itentialopensource/adapter-tmf641_service_ordering_management@itentialopensource/adapter-tmf642_alarm_management@itentialopensource/adapter-tufin_secureapp@itentialopensource/adapter-vmware_virtual_infrastructure@itentialopensource/adapter-vmware_vrealize_orchestrator@itentialopensource/adapter-vmware_vsphere@itentialopensource/adapter-watchguard_firebox_mgmt@itentialopensource/adapter-webex_teams@itentialopensource/adapter-whatsup_gold@itentialopensource/adapter-winston_syslog@itentialopensource/adapter-zabbix@itentialopensource/adapter-zero_networks@itentialopensource/adapter-zoom@itentialopensource/adapter-zscaler@itentialopensource/adapter-zscaler_zpa@itentialopensource/adapter-robustel@itentialopensource/adapter-rundeck@itentialopensource/adapter-salesforce@itentialopensource/adapter-salesforce_apex@itentialopensource/adapter-salesforce_cases@itentialopensource/adapter-salesforce_metadata@itentialopensource/adapter-salesforce_partner@itentialopensource/adapter-salesforce_rest@itentialopensource/adapter-salesforce_tooling@itentialopensource/adapter-salt@itentialopensource/adapter-scansource@itentialopensource/adapter-sciencelogic_sl1@itentialopensource/adapter-service_desk_plus@itentialopensource/adapter-calix@itentialopensource/adapter-calix_cloud_devportal@itentialopensource/adapter-calix_cms@itentialopensource/adapter-calix_support_cloud@itentialopensource/adapter-centreon@itentialopensource/adapter-chatgpt@itentialopensource/adapter-checkpoint_gaia@itentialopensource/adapter-checkpoint_management@itentialopensource/adapter-checkpoint_reputation_service@itentialopensource/adapter-ciena_mcp@itentialopensource/adapter-cisco_aci@itentialopensource/adapter-cisco_acs@itentialopensource/adapter-cisco_callmanager@itentialopensource/adapter-cisco_cml@itentialopensource/adapter-cisco_dcnm
2.0.1

5 years ago

2.0.0

7 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago