Node.js 断言模块 Assert 模块

assert 模块

assert模块是Node的内置模块,主要用于断言。如果表达式不符合预期,就抛出一个错误。该模块提供11个方法,但只有少数几个是常用的。


assert(value[, message])

value <any> 检查是否为真的输入。

message <string> | <Error>

assert.ok() 的别名。


assert.ok(value[, message])

如果 value 不是真值,则抛出 AssertionError,并将 message 属性设置为等于 message 参数的值。 如果未定义 message 参数,则会分配默认错误消息。 如果 message 参数是 Error 的实例,则它将被抛出而不是 AssertionError。 如果没有传入任何参数,则将 message 设置为字符串:'No value argument passed to `assert.ok()`'。


assert.equal(actual, expected[, message])

equal方法接受三个参数,第一个参数是实际值,第二个是预期值,第三个是错误的提示信息。equal方法内部使用的是相等运算符(==),而不是严格运算符(===),进行比较运算。


assert.notEqual(actual, expected, [message])

notEqual方法的用法与equal方法类似,但只有在实际值等于预期值时,才会抛出错误。


assert.equal(actual, expected[, message])

测试 actual 参数和 expected 参数之间的深度相等。 深度相等意味着子对象的可枚举的自身属性也通过以下规则进行递归计算。

const assert = require('assert').strict;
// 失败,因为 1 !== '1'。
assert.deepStrictEqual({ a: 1 }, { a: '1' });
// 解封装后的数字不同:
assert.deepStrictEqual(new Number(1), new Number(2));
// 通过,因为对象与解封装后的字符串都是相同的。
assert.deepStrictEqual(new String('foo'), Object('foo'));


assert.notDeepEqual(actual, expected[, message])

测试深度严格的不平等。 与 assert.deepStrictEqual() 相反。


assert.strictEqual(actual, expected[, message])

测试 actual 参数和 expected 参数之间的严格相等性,使用 SameValue比较。


assert.notStrictEqual(actual, expected[, message])

测试 actual 参数和 expected 参数之间的严格不相等,使用 SameValue比较。

如果值严格相等,则抛出 AssertionError,并将 message 属性设置为等于 message 参数的值。 如果未定义 message 参数,则会分配默认错误消息。 如果 message 参数是 Error 的实例,则它将被抛出而不是 AssertionError。


assert.fail([message])

使用提供的错误消息或默认错误消息抛出 AssertionError。 如果 message 参数是 Error 的实例,则它将被抛出而不是 AssertionError。

const assert = require('assert').strict;
assert.fail();
// AssertionError [ERR_ASSERTION]: Failed
assert.fail('失败');
// AssertionError [ERR_ASSERTION]: 失败
assert.fail(new TypeError('需要数组'));
// TypeError: 需要数组
使用带有两个以上参数的 assert.fail() 是可能的,但已弃用。 


assert.match(string, regexp[, message])

期望 string 输入与正则表达式匹配。

import assert from 'assert/strict';

assert.match('I will fail', /pass/);
// AssertionError [ERR_ASSERTION]: The input did not match the regular ...

assert.match(123, /pass/);
// AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.

assert.match('I will pass', /pass/);
// OK


参考:

http://nodejs.cn/api/assert.html

修改时间 2022-03-22

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
随机推荐
Land 主题
curl 的用法指南
MySQL 表名预处理
TypeScript 和 Koa 实践
如何使用命令修改 MySQL 数据库名称
WP_Query 函数
JavaScript 检查 Date 是否为 Invalid Date
WordPress 插件开发