严格模式


当使用严格模式(strict mode)时,任何 assert 函数都将使用严格函数模式中使用的相等性。 因此,assert.deepEqual() 将与 assert.deepStrictEqual() 一样效果。

最重要的是,涉及对象的错误消息将产生错误的差异,而不是显示两个对象。 遗留模式则不是这种情况。

它可以使用以下方式访问:

const assert = require('assert').strict;

错误差异的示例:

const assert = require('assert').strict;

assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);
// AssertionError: Input A expected to strictly deep-equal input B:
// + expected - actual ... Lines skipped
//
//   [
//     [
// ...
//       2,
// -     3
// +     '3'
//     ],
// ...
//     5
//   ]

要停用颜色,则使用 NODE_DISABLE_COLORS 环境变量。 注意,这也将停用 REPL 中的颜色。

When using the strict mode, any assert function will use the equality used in the strict function mode. So assert.deepEqual() will, for example, work the same as assert.deepStrictEqual().

On top of that, error messages which involve objects produce an error diff instead of displaying both objects. That is not the case for the legacy mode.

It can be accessed using:

const assert = require('assert').strict;

Example error diff:

const assert = require('assert').strict;

assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);
// AssertionError: Input A expected to strictly deep-equal input B:
// + expected - actual ... Lines skipped
//
//   [
//     [
// ...
//       2,
// -     3
// +     '3'
//     ],
// ...
//     5
//   ]

To deactivate the colors, use the NODE_DISABLE_COLORS environment variable. Please note that this will also deactivate the colors in the REPL.