Related Tags

node.js

# What is the equal method of the assert module in Node.js?

Talha Ashar

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

The equal method of the assert module in Node.js uses the == operator (Abstract Equality Comparison) to check for equality between two values.

The process is illustrated below:

Note: You can view a list of rules for the == operator here.

To use the equal method, you will need to install the assert module using the command prompt as shown below:

npm install assert


After the installation is complete, you will need to import the assert module into the program as shown below:

const assert = require('assert');


The prototype of the equal method is shown below:

equal(actual, expected[, message])


## Parameters

The equal method takes the following parameters:

• actual: The first of the two values to compare.

• expected: The second of the two values to compare.

• message: This optional parameter holds the error message in case of an AssertionError. If this parameter is left empty, a default message is assigned.

## Return value

If the values are not equal, then the equal method throws an AssertionError, and the program terminates; otherwise, execution continues as normal.

In case of an error, the message property of the AssertionError is set equal to the message parameter. If the message parameter is not provided, a default value is assigned to the message property of the AssertionError.

Note: The equal method also handles NaN(Not-A-Number) comparisons. If both values are NaN, the equal method recognizes them as being identical.

## Example

The code below shows how the equal method works in Node.js:

const assert = require('assert');// evaluating first expressiontry{  assert.equal(10, 10, "Assertion Error: The values are inequal.")  console.log("No error.")}catch(error){  console.log(error.message)}// evaluating second expressiontry{  assert.equal(10, "10", "Assertion Error: The values are inequal.")  console.log("No error.")}catch(error){  console.log(error.message)}// evaluating third expressiontry{  assert.equal(10, 5, "Assertion Error: The values are inequal.")  console.log("No error.")}catch(error){  console.log(error.message)}

## Explanation

The code above uses $3$ different expressions to show the behavior of the equal method.

In the first expression in line $5$, the actual and expected parameters are both $10$, so the equal method does not throw any errors. Therefore, only the try branch of the try-catch block executes.

In the second expression in line $14$, the actual and expected parameters are again $10$, but they have different types. The actual parameter is an integer, whereas the expected parameter is a string. Since the equal method uses abstract equality comparison rules, it considers the two values equal and does not throw any errors. Therefore, only the try branch of the try-catch block executes.

In the third expression in line $23$, the actual and expected parameters are unequal, so an error is thrown, which triggers the catch branch of the try-catch block. The code outputs the message associated with the error, i.e., the string provided as the message parameter to the equal method in line $23$.

RELATED TAGS

node.js

CONTRIBUTOR

Talha Ashar