Mocha Unit Tests with Hello World


This blog helps you get started with Mocha and also present steps and sample tests which can be used to get started.

Setup Mocha using NPM

For installing Mocha globally such that it can be from anywhere, execute following command:

npm install --global mocha

For installing with npm, you may be required to install Nodejs. npm is distributed with NodeJS which implies that downloading and installing NodeJS automatically installs npm on your computer. One can get appropriate version of NodeJS from following page, Download NodeJS. Details on npm can be found on this page, NPM.

Execute mocha command to make sure it is installed appropriately. Following is the screenshot of output as a result of execution of mocha command:

Mocha Command Execution

Figure 1. Mocha Command Execution

Write First Unit Tests with Mocha

The following steps represents the creation of unit test which will be run with Mocha.

  • Create a tests folder.
  • Make a test file within tests folder such as test.js. Put following code within test.js
    var assert = require('assert');
    describe('HelloWorld Module', function() {
      it('should return -1 when "Hello" is missing', function() {
        assert.equal(-1, "Hallo World".indexOf("Hello"));
      it('should return 0 when sentence starts with Hello', function() {
        assert.equal(0, "Hello World, how are you?".indexOf("Hello"));
  • Run the tests using command such as following:
    mocha tests/test.js

Following is how the test results would look like:

Mocha Unit Tests Results

Mocha Unit Tests Results

Ajitesh Kumar

Ajitesh Kumar

Ajitesh is passionate about various different technologies including programming languages such as Java/JEE, Javascript, PHP, C/C++, mobile programming languages etc, and, computing fundamentals related with cloud-native technologies, application security, cloud computing platforms, mobile apps, big data etc.

He has also authored the book, Building Web Apps with Spring 5 and Angular.
Ajitesh Kumar

Leave A Reply

Time limit is exhausted. Please reload the CAPTCHA.