Mocha and Chai (Javascript)
Mocha is a Javascript test framework for use with Node, and Chai is an assertion library.
Another common library to use with Mocha is nyc, which allows you to get a code coverage readout. You can use this by npm i nyc and then adding it to your package.json as a script: "coverage": "nyc npm run test".
Quick Start
Install Mocha and Chai using npm i --save-dev mocha chai.
In your package.json, replace the value of the "test" property within "scripts" with "mocha ./path/to/tests", inserting the path to your tests.
Create a file called example.js within your test folder. Place this inside:
const assert = require('chai').assert;
describe('Sum', () => {
it('should add 2 and 2 to equal 4', () => {
assert.equal(2 + 2, 4);
});
});
Save this file and in your terminal, run npm run test. This should render a screen showing a test, "should add 2 and 2 to equal 4", passing within the "Sum" section.
Assert
All are assumed to start with assert.
Comparison
Invoked with (actual, expected).
| Chain | Effect |
|---|---|
.equal, .notEqual |
Non-strict equality (==) |
.deepEqual, .notDeepEqual |
Strict equality (===), also used for objects |
Simple
All are accompanied with a negative assertion, e.g. .isX/ .isNotX.
.exists(x).include([x,y,z], x).deepInclude([obj1, obj2], obj1)- Every primitive (
.isNumber,.isBoolean,isTrue, etc.)
Asynchronous Tests
References
- https://mochajs.org/
- https://www.chaijs.com/
- https://www.chaijs.com/api/assert/
- https://gist.github.com/yoavniran/1e3b0162e1545055429e#jest
- https://www.testim.io/blog/testing-promises-using-mocha/
Last modified: 202401040446