Node.js Assertion API All In One
Node.js 断言 API
严格模式
In strict assertion mode
, non-strict methods behave like their corresponding strict methods.
For example, assert.deepEqual()
will behave like assert.deepStrictEqual()
.
在严格断言模式
下,非严格方法的行为与其相应的严格方法类似。
例如,assert.deepEqual()
的行为类似于 assert.deepStrictEqual()
。
https://nodejs.org/api/assert.html#strict-assertion-mode
use "strict";
// js module 开启严格模式
(() => {
use "strict";
// js function 开启严格模式
})();
Assert API
- CJS
// const assert = require('node:assert').strict;
const assert = require('node:assert/strict');
assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);
- ESM
// import assert from 'node:assert/strict';
import { strict as assert } from 'node:assert';
assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]);
https://nodejs.org/api/assert.html#assert
demos
$ node ./esm-assert.js
node:internal/process/esm_loader:108
internalBinding('errors').triggerUncaughtException(
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
+ actual - expected ... Lines skipped
[
[
[
1,
2,
+ 3
- '3'
]
...
4,
5
]
at file:///home/eric/Desktop/node-playground/esm-assert.js:6:8
at ModuleJob.run (node:internal/modules/esm/module_job:194:25) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: [ [ [ 1, 2, 3 ] ], 4, 5 ],
expected: [ [ [ 1, 2, '3' ] ], 4, 5 ],
operator: 'deepStrictEqual'
}
Node.js v18.18.0
import * as assert from 'node:assert/strict';
// Comparing primitive values:
assert.equal(3 + 4, 7);
assert.equal('abc'.toUpperCase(), 'ABC');
// Comparing objects:
assert.notEqual({prop: 1}, {prop: 1});
// shallow comparison
assert.deepEqual({prop: 1}, {prop: 1});
// deep comparison
assert.notDeepEqual({prop: 1}, {prop: 2});
// not deep comparison
(? 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
CJS error
fix:
# .js => .mjs => ESM
# .cjs => CJS
$ mv cjs-assert.js cjs-assert.cjs
refs
https://exploringjs.com/impatient-js/ch_assertion-api.html
https://exploringjs.com/nodejs-shell-scripting/downloads/nodejs-shell-scripting-book-preview.pdf
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 ?️,侵权必究⚠️!