Write a Unit Test With Mocha in Nodejs
There are many libraries available to write a unit test in nodejs like mochajs , jest i will show you how you can use mochajs to write unite test
first install dependency using npm
npm install mocha
Now suppose you have created a one function in repository like findUserByEmail()
and if you have to check whether this function is working properly or not without attaching it to the routes and controller
Create a separate directory called test
inside test
directory you can create a subdirectory if have multiple service test cases, but for now i will create a single file in test directory and add that unit test inside that file
so directory structure will be like below
- test
- users.repository.test.js
just suppose for if we pass email id then findUserByEmail
function will return the data of that email, so i am not going to write a logic for this function.
content of our test file will be like below
users.repository.test.js
var assert = require('assert');
describe("findUserByEmail", function () {
it("findUserByEmail", async function () {
var user = await findUserByEmail("email_id");
assert.notEqual(user.id,undefined,);
});
});
now add the mocha command line inside scripts
key of package.json
file
like below
"scripts": {
"test": "mocha --recursive"
},
now for running the test case just simply run the npm test
command and it will run all the test cases inside of test folder
if you want to run the specific test like if you want to run only single test case use the below command
npx mocha --recursive -g findUserByEmail
this command will run only findUserByEmail
test function