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: