This throws an error with the message 'Strings do not match' because the strings differ.
Node.js
importassertfrom'assert';
assert.strictEqual('hello', 'world', 'Strings do not match');
assert.ok checks if the value is truthy. Here it passes because true is truthy.
Node.js
importassertfrom'assert';
assert.ok(true, 'This should not fail');
Sample Program
This program defines a simple add function. It uses assert.strictEqual to check if adding 2 and 3 equals 5. If the check passes, it prints 'Test passed!'. If it fails, it stops with an error.
Node.js
importassertfrom'assert';
function add(a, b) {
return a + b;
}
const result = add(2, 3);
assert.strictEqual(result, 5, 'Addition result should be 5');
console.log('Test passed!');
OutputSuccess
Important Notes
Assertions help catch bugs early by verifying your code behaves as expected.
Use clear messages in assertions to understand failures quickly.
Assertions are mainly for development and testing, not for handling user errors.
Summary
The Assert module checks if values meet conditions and stops code if not.
Use it to test your code during development simply and quickly.
It helps find mistakes early before your program runs fully.
Practice
(1/5)
1. What is the main purpose of the assert module in Node.js?
easy
A. To check if values meet expected conditions and throw errors if not
B. To handle HTTP requests and responses
C. To manage file system operations
D. To create and manage database connections
Solution
Step 1: Understand the role of the assert module
The assert module is designed to verify conditions in code and throw errors when conditions fail.
Step 2: Compare with other options
Options B, C, and D relate to other Node.js modules like http, fs, and database libraries, not assert.
Final Answer:
To check if values meet expected conditions and throw errors if not -> Option A
Quick Check:
assert module = condition checks [OK]
Hint: Assert checks conditions and stops code if false [OK]
Common Mistakes:
Confusing assert with modules for HTTP or file operations
Thinking assert manages asynchronous events
Assuming assert modifies data instead of checking it
2. Which of the following is the correct way to import the assert module in Node.js?
easy
A. const assert = require('assert');
B. import assert from 'assert';
C. const assert = import('assert');
D. require assert from 'assert';
Solution
Step 1: Recall Node.js CommonJS import syntax
Node.js traditionally uses const module = require('module') to import modules.
Step 2: Check each option
const assert = require('assert'); uses correct CommonJS syntax. import assert from 'assert'; is ES module syntax, which requires special setup. Options A and C are invalid syntax.
Final Answer:
const assert = require('assert'); -> Option A
Quick Check:
CommonJS import = require() [OK]
Hint: Use require() to import assert in Node.js [OK]
Common Mistakes:
Using ES module import without enabling it
Mixing import and require syntax
Writing invalid require statements
3. What will be the output of the following code snippet?
assert.equal uses loose equality (==), so 5 and '5' are equal. assert.strictEqual uses strict equality (===), so 4 and '4' differ in type.
Step 2: Identify which assertion fails
assert.strictEqual(4, '4') fails and throws an AssertionError. Others pass without error.
Final Answer:
assert.strictEqual(4, '4') will throw an error -> Option B
Quick Check:
strictEqual fails on type mismatch [OK]
Hint: strictEqual fails if types differ, equal allows type coercion [OK]
Common Mistakes:
Assuming assert.equal throws error on 5 and '5'
Thinking assert.strictEqual allows type coercion
Ignoring that assert.equal passes with loose equality
5. You want to verify that a function getUserName() returns a non-empty string. Which assert statement correctly checks this condition?
hard
A. assert.strictEqual(typeof getUserName(), 'string'); assert.ok(getUserName().length > 0);
B. assert.equal(getUserName(), 'string'); assert.ok(getUserName() !== '');
C. assert.ok(typeof getUserName() === 'string' && getUserName().length > 0);
D. assert.strictEqual(getUserName().length, 'string');
Solution
Step 1: Understand the condition to check
The function must return a string type and the string must not be empty (length > 0).
Step 2: Evaluate each option
assert.strictEqual(typeof getUserName(), 'string'); assert.ok(getUserName().length > 0); calls getUserName() twice, which may differ and is less efficient. assert.equal(getUserName(), 'string'); assert.ok(getUserName() !== ''); incorrectly compares value to string 'string'. assert.strictEqual(getUserName().length, 'string'); compares length to string 'string', which is invalid. assert.ok(typeof getUserName() === 'string' && getUserName().length > 0); correctly checks both conditions in one assert.ok call.