I was unable to quickly find a solution for this, so here’s a little guide on how to set it up together in a proper way.
First, install the libraries:
npm install mocha --save-dev
npm install sinon --save-dev
npm install chai --save-dev
I come from the Ruby world, so I expect to have a spec
command, spec_helper.js
file and specs living inside spec/
directory (with a nested structure).
Inside package.json
file define the spec
command:
"scripts" : {
"spec": "mocha --opts spec/mocha.opts"
}
We will be using BDD style (expect().to()
) of chai. Inside spec/mocha.opts
add:
--recursive **/*_spec.js
--require spec/spec_helper.js
--ui bdd
Create spec/spec_helper.js
, which will require chai and sinon and we will require `spec_helper.js` inside all specs (similarly to how RSpec in Ruby world works).
const sinon = require('sinon')
const expect = require('chai').expect
global.sinon = sinon
global.expect = expect
And now create your spec file (spec/module_spec.js
). You should not be required to include any libraries there. Now you can run your specs:
npm run spec
References: