There are a lot of unit testing frameworks available for Javascript, Jasmine and Karma being some of the older and more popular ones.
Jasmine and Karma, though are, originally designed for browser-side JS, and hence, frameworks like NodeUnit and Mocha have become more popular with server-size JS.
We needed code coverage reports to work after the unit tests, and the Jasmine-Node reports were not sufficient, so we just moved to using Mocha.
When using Mocha, we can use some assert library (which is not necessary, but makes life a hell lot easier). We are using chai at the open-event-webapp..
First of all install mocha globally –
npm install -g mocha
And write your tests in the test/
folder that mocha by default considers as the folder containing your test specs. For example we have our tests here – https://github.com/fossasia/open-event-webapp/tree/master/test
Writing a simple mocha test is as easy as this –
var assert = require('chai').assert; describe('Array', function() { describe('#indexOf()', function() { it('should return -1 when the value is not present', function() { assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }); }); });
The first parameter inside describe() is just to show the tests in a aesthetic way in the console.
You can see our tests described in this fileĀ – https://github.com/fossasia/open-event-webapp/blob/master/test/serverTest.js
And attached below is an screenshot of the terminal after I have run the command mocha
in the root of my project