assert
The assert module provides a set of functions for verifying conditions (assertions). If the condition fails, an AssertionError is thrown.
API Surface
Basic
assert(value[, message])— throws if value is falsy.assert.ok(value[, message])— same as above.
Equality
assert.equal(actual, expected[, message])— loose equality (==).assert.notEqual(actual, expected[, message])— not equal.assert.strictEqual(actual, expected[, message])— strict (===).assert.notStrictEqual(actual, expected[, message])— strict not equal.
Deep
assert.deepEqual(actual, expected[, message])— deep comparison (==rules).assert.notDeepEqual(...)assert.deepStrictEqual(actual, expected[, message])— deep + strict.assert.notDeepStrictEqual(...)
Exceptions
assert.throws(fn[, error])— expect function to throw.assert.doesNotThrow(fn[, error])assert.rejects(asyncFn[, error])— expect promise rejection.assert.doesNotReject(asyncFn[, error])
Misc
assert.fail([message])— always throws.assert.ifError(value)— throws if value is truthy (commonly error).
Examples (English only)
const assert = require("assert");
// Basic
assert.ok(true);
assert.ok(1);
// Equality
assert.strictEqual(2 + 2, 4);
assert.notStrictEqual(2 + 2, 5);
// Deep equality
assert.deepStrictEqual({ a: 1 }, { a: 1 });
// Throws
assert.throws(() => {
throw new Error("fail");
});
// Rejects (async)
(async () => {
await assert.rejects(Promise.reject(new Error("bad")));
})();
Notes
- Use strict variants to avoid coercion pitfalls.
- Deep comparisons are useful for objects/arrays.
- Wrap async assertions in
asyncfunctions. - Assertion errors include
actual,expected, andoperator.