Tools for Promises Unit Testing

Venkat.R
4,948 views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

MochaJs

Mocha is a JavaScript test framework running on node.js, featuring browser support, asynchronous testing, test coverage reports, and use of any assertion library. It can be used with libraires like should.js, expect.js and chai.js.

Simple Mocha Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const mocha = require('mocha');
describe('Simple Testing', () => {
describe('Basic', () => {
it('Test Case 1', () => {
});
it('Test Case 2', () => {
});
it('Test Case 2', () => {
});
});
});
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ChaiJs

Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.

Simple Chai Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const mocha = require('mocha');
const expect = require('chai').expect;
describe('Simple Chai Testing', () => {
describe('Basic', () => {
it('Test Case 1', () => {
expect(1+1).to.equal(2);
});
it('Test Case 2', () => {
expect(typeof (1+1)).to.equal('number');
});
it('Test Case 2', () => {
const response = {
a: {
b: ['x', 'y']
}
};
expect(response).to.have.nested.property('a.b[1]');
});
});
});
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

SinonJs

SinonJs is a standalone library for test spies, stubs and mocks for JavaScript. Works with any unit testing framework.

Simple Sinon Example
1
2
3
4
5
6
7
8
const dbStub = sinon.stub(db, 'getData').callsFake(() => {
return Promise.resolve(response);
});
const dbSpyy = sinon.spy(db, 'getData');
expect(db.getData(0).args[0]).to.deep.equal({
success: true,
});
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Installation

Use below any one command to install Mocha, Chai and Sinon Module and these must to be installed as Dev Dependencies modules, because it’s not required when application running in the server but during build.

$ npm i -D mocha chai sinon
            or
$ npm install mocha chai sinon --save-dev

Code Coverage

If you are very much interested on how much code covered during unit testing. Try Istanbul which make test coverage simple with various types of report format.

$ npm i -D nyc
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content