node.js官方文档解析 01—assert 断言
assert-------断言
new assert.AssertionError(options)
Error 的一个子类,表明断言的失败。
options(选项)有下列对象
message<string> 如果有值,则错误信息会被设为该值。actual(实际)<any> 错误实例的actual属性会被设为该值。用于actual错误输入,例如使用assert.strictEqual()。expected(期望值)<any> 错误实例的expected属性会被设为该值。用于expected错误输入,例如使用assert.strictEqual()。operator(运算符)<string> 错误实例的operator属性会被设为该值。用于表明比较时使用的是哪个操作(或触发错误的是哪个断言函数)。stackStartFn<Function> 如果有值,则由提供的函数生成堆栈踪迹。
assert.doesNotReject(block[, error][, message])
doesNotReject(不能拒结)
block<Function> | <Promise>(责任)error<RegExp> | <Function>message<string> | <Error>
assert.doesNotThrow
.doesNotThrow(抛)
block<Function>error<RegExp> | <Function>message<string> | <Error>
断言 block 函数不会抛出错误。
// SyntaxError(语法错误)
assert.equal(actual, expected[, message])
.equal(相等)
或者 assert.strictEqual().(和上面的意思相同,表示一个别名)
eg:使用抽象的相等比较(==)测试实际和预期参数之间的浅、强制的相等性。
const assert = require('assert');
assert.equal(1, 1);
// OK, 1 == 1
assert.equal(1, '1');
// OK, 1 == '1'
assert.equal(1, 2);
// AssertionError: 1 == 2
assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
// AssertionError: { a: { b: 1 } } == { a: { b: 1 } }
如果值不相等,就会抛出一个断言错误,它将与消息参数的值相等。如果消息参数没有定义,就会分配一条默认的错误消息。如果消息参数是一个错误的实例,那么它将被抛出而不是断言错误。
assert.fail([message])
.fail(失败)
抛出 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.ifError(value)
value(值)<any>
如果 value 不为 undefined 或 null,则抛出 value。可用于测试回调函数的 error 参数。 堆栈踪迹会包含传入 ifError() 的错误的所有帧,包括潜在的 ifError() 自身新增的帧。
//errorFrame(错误帧)
const assert = require('assert').strict;
assert.ifError(null);//使用了value规则的undefined和null
// 通过。
assert.ifError(0);
// 抛出 AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
assert.ifError('错误信息');
// 抛出 AssertionError [ERR_ASSERTION]: ifError got unwanted exception: '错误信息'
assert.ifError(new Error());
// 抛出 AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error
// 添加一些错误帧。
let err;
(function errorFrame() {
err = new Error('错误信息');
})();
(function ifErrorFrame() {
assert.ifError(err);
})();
// AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 错误信息
// at ifErrorFrame
// at errorFrame
//any类型可以赋值任意类型。
assert.notDeepStrictEqual(actual, expected[, message])
测试 actual 参数与 expected 参数是否不深度全等。 与 assert.deepStrictEqual() 相反。
assert.notStrictEqual(actual, expected[, message])
actual 参数与 expected 参数是否不全等。
const assert = require('assert').strict;
assert.notStrictEqual(1, 2);
// 测试通过。
assert.notStrictEqual(1, 1);
// 抛出 AssertionError [ERR_ASSERTION]: Identical input passed to notStrictEqual: 1
assert.notStrictEqual(1, '1');
// 测试通过。
如果两个值全等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。 如果 message 参数是 Error 的实例,则会抛出它而不是 AssertionError。
assert.ok(value[, message])
测试 value 是否为真值。
如果 value 不为真值,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。 如果 message 参数是 Error 的实例,则会抛出它而不是 AssertionError。 如果没有传入参数,则 message 会被设为字符串 'No value argument passed to `assert.ok()`'。
eg:
const assert = require('assert').strict;
assert.ok(true);
// 测试通过。
assert.ok(1);
// 测试通过。
assert.ok();//如果没有传入参数,则 message 会被设为字符串 'No value argument passed to `assert.ok()`'。
// 抛出 AssertionError: No value argument passed to `assert.ok()`
assert.ok(false, '不是真值');
// 抛出 AssertionError: 不是真值
// 在 repl 中:
assert.ok(typeof 123 === 'string');
// 抛出 AssertionError: false == true
// 在文件中(例如 test.js):
assert.ok(typeof 123 === 'string');
// 抛出 AssertionError: The expression evaluated to a falsy value:
//
// assert.ok(typeof 123 === 'string')
assert.ok(false);
// 抛出 AssertionError: The expression evaluated to a falsy value:
//
// assert.ok(false)
assert.ok(0);
// 抛出 AssertionError: The expression evaluated to a falsy value:
//
// assert.ok(0)
// 等同于 `assert()`:
assert(0);
// 抛出 AssertionError: The expression evaluated to a falsy value:
//
// assert(0)
//promise:表示异步操作的最终完成(或失败)及其产生的值。
assert.rejects(block[, error][, message])//不懂
assert.strictEqual(actual, expected[, message])
测试 actual 参数与 expected 参数是否全等。
const assert = require('assert').strict;
assert.strictEqual(1, 2);
// 抛出 AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:
// + expected - actual
// - 1
// + 2
assert.strictEqual(1, 1);
// 测试通过。
assert.strictEqual(1, '1');
// 抛出 AssertionError [ERR_ASSERTION]: Input A expected to strictly equal input B:
// + expected - actual
// - 1
// + '1'
如果两个值不全等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。 如果 message 参数是 Error 的实例,则会抛出它而不是 AssertionError。
//nested(嵌套)
//info(信息)
node.js官方文档解析 01—assert 断言的更多相关文章
- node.js官方文档解析 02—buffer 缓冲器
Buffer 类的实例类似于整数数组,但 Buffer 的大小是固定的.且在 V8 堆外分配物理内存.Buffer 的大小在被创建时确定,且无法调整. Buffer 类在 Node.js 中是一个全局 ...
- Node.js官方文档:到底什么是阻塞(Blocking)与非阻塞(Non-Blocking)?
译者按: Node.js文档阅读系列之一. 原文: Overview of Blocking vs Non-Blocking 译者: Fundebug 为了保证可读性,本文采用意译而非直译. 这篇博客 ...
- node.js官方文档chm电子书的制作
制作软件:WebCHMSetup2.22.zip,http://www.onlinedown.net/soft/31553.htm 制作好的电子书:Node.js(v6.10.2).zip 参考链接: ...
- Node.js 官方文档中文版
这目录也是醉了 . 列出跟没列出没两样
- bootbox.js官方文档中文版
bootbox.js官方文档中文版简介:Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Boot ...
- Hui之Hui.js 官方文档
基础 // 判断值是否是指定数据类型 var result = hui.isTargetType("百签软件", "string"); //=>true ...
- sanic官方文档解析之Example(二)
1,通过docker部署sanic项目 通过Docker和Docker Compose部署SANIC应用程序是一项很容易实现的任务,下面的示例提供了示例simple_server.py的部署 FROM ...
- Android Google官方文档解析之——Application Fundamentals
Android apps are written in the java programming language.The Android SDK tools compile your code-al ...
- bootbox.js官方文档
简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...
随机推荐
- 金融量化分析【day112】:双均线策略
一.双均线策略 1.什么是双均线策略? 2.实现代码 def initialize(context): set_benchmark('601318.XSHG') set_option('use_rea ...
- vim与程序员
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
- LFYZ-OJ ID: 1008 求A/B高精度值
思路 小数点前的部分可以通过m/n直接计算得出 小数点后的20位可通过循环进行快速计算,计算方法如下: m%=n m*=10 小数点后第i位为m/n,回到第1步 第3步后,如果m%n为0,说明已经除净 ...
- VIM --使用进阶 -- 插件篇 -- YouCompleteMe -- nerdtree
系统:ubuntu: 资源:https://github.com/ 其他:想了解都要哪些好用的插件,推荐大家读 http://blog.csdn.net/mergerly/article/detail ...
- PHP中ajax返回数据类型为JSON数据的处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux中执行C++程序
参考:https://blog.csdn.net/qq_31125955/article/details/79343498 https://blog.csdn.net/weixin_35477207/ ...
- 【转载】Pytorch tutorial 之Datar Loading and Processing
前言 上文介绍了数据读取.数据转换.批量处理等等.了解到在PyTorch中,数据加载主要有两种方式: 1.自定义的数据集对象.数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Datase ...
- [Kubernetes]如何让集群为我们工作?
前一段时间倒腾k8s的时候,写了一系列的博客,有很多人不理解那样做的意义是什么,为什么要那样做,这篇文章就尝试解释一下,在实际环境中,是如何让集群为我们工作的. 因为只研究了一个月左右的时间,认识难免 ...
- spring MVC如何获取session传值到前台
Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器程 ...
- Jace Config
一.jace配置 1.按照Jace 的默认IP配置自己电脑的IP网段(同一个网段),连接上之后使用默认的密码登录,导入tridiumEMEA…..的授权文件,之后创建Station,选择需要的协议驱动 ...