When you test your codebase, you take a piece of code — typically a function — and verify it behaves correctly in a specific situation. Unit testing is a structured and automated way of doing this. As a result, the more tests you write, the bigger the benefit you receive. You will also have a greater level of confidence in your codebase as you continue to develop it.
Your Machine should have node and npm installed. Install the node.js LTS version from Node website. npm gets installed along with node automatically.
Run below in command line to check the successful installation of node and npm.
npm -v // will return installed npm version
node -v // will return installed node version
- Mocha is a JavaScript Test Framework.
- Runs on Node.js and Browser
- Installation: (Run the below commands in terminal or cmd)
npm install --global mocha
npm install --save-dev mocha
Note: To run Mocha, we need Node.js v4 or newer.
—- global
helps to install the Mocha on computer at global level which helps to run mocha test through command line.
—- save-dev
helps to add the mocha as dependency in package.json file for that particular project.
- assert helps to determine the status of the test, it determines failure of the test.
- describe is a function which holds the collection of tests. It takes two parameters, first one is the meaningful name to functionality under test and second one is the function which contains one or multiple tests. We can have nested describe as well.
- it is a function again which is actually a test itself and takes two parameters, first parameter is name to the test and second parameter is function which holds the body of the test.
- Download or clone the Github Repo, navigate to the repo in command line
- Run
npm install
to install all dependencies from package.json - Run
npm test
to run all test sepcs. npm test
works because of below test script in package.json file.
"scripts";: {
"test";: "mocha"
}
- Assertion is an expression which helps system (Mocha in this case) to know code under test failed.
- Assert’s job is to just throw an error when things are not correct or right.
- Assert tests the expression and it does nothing when expression passes but throws exception in case of failure to tell the test framework about it.
- We can just throw an exception to fail the test as well.
- Chai is BDD/TDD assertion library.
- Can be paired with any javascript testing framework.
- Assertion with Chai provides natural language assertions, expressive and readable style.
- Installation: (Run the below commands in terminal or cmd)
npm install --save-dev chai
- There are two popular way of assertion in Chai, expect and should
- The expect interface provides function for assertion.
- The should interface extends each object with a should property for assertion.
- should property gets added to the Object.Prototype, so that all object can access it through prototype chain.
You can navigate the files using the following directory:
- Mocha: https://mochajs.org/
- Node.js: https://nodejs.org/en/
- Chai: https://www.chaijs.com/