### Platform Support The following shows Assert module APIs available for each platform. | | Linux
(Ubuntu) | Raspbian
(Raspberry Pi) | NuttX
(STM32F4-Discovery) | TizenRT
(Artik053) | | :---: | :---: | :---: | :---: | :---: | | assert.ok | O | O | O | O | | assert.doesNotThrow | O | O | O | O | | assert.equal | O | O | O | O | | assert.fail | O | O | O | O | | assert.notEqual | O | O | O | O | | assert.notStrictEqual | O | O | O | O | | assert.strictEqual | O | O | O | O | | assert.throws | O | O | O | O | # Assert Assert module is designed for writing tests for applications. You can access the functions of the module by adding `require('assert')` to your file. ## Class: AssertionError Assert module will produce `AssertionError` in case of an assertion failure. `AssertionError` inherits standard `Error` thus it has properties provided by `Error` object including additional properties. * `actual` {any} This property contains the actual value. * `expected` {any} This property contains the expected value. * `message` {any} The error message, default value is the error itself. * `name` {string} The name is `AssertionError` string. * `operator` {string} This property contains the operator used for comparing `actual` with `expected`. ### assert(value[, message]) * `value` {any} Value to test. * `message` {any} Message displayed in the thrown error. An alias of assert.ok(). ### assert.ok(value[, message]) * `value` {any} Value to test. * `message` {any} Message displayed in the thrown error. Checks if the `value` is truthy. If it is not, throws an AssertionError, with the given optional `message`. **Example** ```js var assert = require('assert'); assert.ok(1); // OK assert.ok(true); // OK assert.ok(false); // throws "AssertionError: false == true" assert.ok(0); // throws "AssertionError: 0 == true" assert.ok(false, "it's false"); // throws "AssertionError: it's false" ``` ### assert.doesNotThrow(block[, message]) * `block` {Function} * `message` {any} Message to be displayed. Tests if the given `block` does not throw any exception. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.doesNotThrow( function() { assert.ok(1); } ); // OK assert.doesNotThrow( function() { assert.ok(0); } ) // throws "AssertionError: Got unwanted exception." ``` ### assert.equal(actual, expected[, message]) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. Tests if `actual == expected` is evaluated to `true`. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.equal(1, 1); assert.equal(1, '1'); ``` ### assert.fail(actual, expected, message, operator) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. * `operator` {string} The operator. Throws an `AssertionError` exception with the given `message`. **Example** ```js var assert = require('assert'); assert.fail(1, 2, undefined, '>'); // AssertionError: 1 > 2 ``` ### assert.notEqual(actual, expected[, message]) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. Tests if `actual != expected` is evaluated to `true`. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.notEqual(1, 2); ``` ### assert.notStrictEqual(actual, expected[, message]) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. Tests if `actual !== expected` is evaluated to `true`. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.notStrictEqual(1, 2); // OK assert.notStrictEqual(1, 1); // AssertionError: 1 !== 1 assert.notStrictEqual(1, '1'); // OK ``` ### assert.strictEqual(actual, expected[, message]) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. Tests if `actual === expected` is evaluated to `true`. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.strictEqual(1, 1); // OK assert.strictEqual(1, 2); // AssertionError: 1 === 2 assert.strictEqual(1, '1'); // AssertionError: 1 === '1' ``` ### assert.deepStrictEqual(actual, expected, message) * `actual` {any} The actual value. * `expected` {any} The expected value. * `message` {any} Message to be displayed. **Example** ```js var assert = require('assert'); var obj1 = { a: 1, b: 2 }; var obj2 = { a: 1, b: 2 }; var obj3 = { a: 1, b: 3 }; assert.deepStrictEqual(obj1, obj2); // OK assert.deepStrictEqual(obj1, obj3); // AssertionError assert.deepStrictEqual(NaN, NaN); // OK ``` ### assert.throws(block[, expected, message]) * `block` {Function} The function that throws an error. * `expected` {Function|RegExp|Object|Error} The expected error type. * `message` {any} Message to be displayed. Tests if the given `block` throws an `expected` error. Otherwise throws an exception with the given optional `message`. **Example** ```js var assert = require('assert'); assert.throws( function() { assert.equal(1, 2); }, assert.AssertionError ); // OK assert.throws(() => { throw new Error('foobar'); }, /foobar/); // OK assert.throws(() => { var e = new Error('foobar'); e.code = 'ENO'; throw e; }, { message: 'foobar', code: 'ENO', }); // OK assert.throws(() => { throw new Error('foobar'); }, err => err.message === 'foobar'); // OK assert.throws( function() { assert.equal(1, 1); }, assert.AssertionError ); // Uncaught error: Missing exception assert.throws( function() { assert.equal(1, 2); }, TypeError ); // AssertionError ```