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(不能拒结)

error 可以是 Class、RegExp 或校验函数。

assert.doesNotThrow

.doesNotThrow(抛)

断言 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 不为 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 断言的更多相关文章

  1. node.js官方文档解析 02—buffer 缓冲器

    Buffer 类的实例类似于整数数组,但 Buffer 的大小是固定的.且在 V8 堆外分配物理内存.Buffer 的大小在被创建时确定,且无法调整. Buffer 类在 Node.js 中是一个全局 ...

  2. Node.js官方文档:到底什么是阻塞(Blocking)与非阻塞(Non-Blocking)?

    译者按: Node.js文档阅读系列之一. 原文: Overview of Blocking vs Non-Blocking 译者: Fundebug 为了保证可读性,本文采用意译而非直译. 这篇博客 ...

  3. node.js官方文档chm电子书的制作

    制作软件:WebCHMSetup2.22.zip,http://www.onlinedown.net/soft/31553.htm 制作好的电子书:Node.js(v6.10.2).zip 参考链接: ...

  4. Node.js 官方文档中文版

    这目录也是醉了 . 列出跟没列出没两样

  5. bootbox.js官方文档中文版

    bootbox.js官方文档中文版简介:Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Boot ...

  6. Hui之Hui.js 官方文档

    基础 // 判断值是否是指定数据类型 var result = hui.isTargetType("百签软件", "string"); //=>true ...

  7. sanic官方文档解析之Example(二)

    1,通过docker部署sanic项目 通过Docker和Docker Compose部署SANIC应用程序是一项很容易实现的任务,下面的示例提供了示例simple_server.py的部署 FROM ...

  8. Android Google官方文档解析之——Application Fundamentals

    Android apps are written in the java programming language.The Android SDK tools compile your code-al ...

  9. bootbox.js官方文档

    简介 Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Bootstrap模态框生成的都是非阻塞事 ...

随机推荐

  1. ZooKeeper 概述

    ZooKeeper:分布式应用程序的分布式协调服务 ZooKeeper:是用于分布式应用程序的分布式开源协调服务 可以简单理解:ZooKeeper = 文件系统 + 通知机制 从设计模式角度理解:Zo ...

  2. G1 垃圾收集器入门

    最近在复习Java GC,因为G1比较新,JDK1.7才正式引入,比较艰难的找到一篇写的很棒的文章,粘过来mark下.总结这篇文章和其他的资料,G1可以基本稳定在0.5s到1s左右的延迟,但是并不能保 ...

  3. DirectX11--HLSL中矩阵的内存布局和mul函数探讨

    前言 说实话,我感觉这是一个大坑,不知道为什么要设计成这样混乱的形式. 在我用的时候,以row_major矩阵,并且mul函数以向量左乘矩阵的形式来绘制时的确能够正常显示,并不会有什么感觉.但是也有人 ...

  4. Geometric regularity criterion for NSE: the cross product of velocity and vorticity 2: $u\times \om\cdot \n\times \om$

    在 [Lee, Jihoon. Notes on the geometric regularity criterion of 3D Navier-Stokes system. J. Math. Phy ...

  5. ArcGis汇总篇

    ArcGis-javascript-API下载 bigemap.太乐地图 可下载地图文件 用arcgis for js 可以河流流域水质图 ArcGis导出shp文件(dbf.prj.sbn.sbx. ...

  6. Python3:字符串的大小写和镜像字符串(swapcase()函数,chr(),ord(),translate()函数)

    题目: 请编程实现字符串的转换:1. 将"adsdsfdndsdsdfsfdsdASDSDEDSFE18754"字符串大写变小写,小写变大写:2. 并且将字符串变为镜像字符串,例如 ...

  7. LeetCode前100题(EASY难度)

    1 Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...

  8. codeblocks修改字体颜色-背景颜色

    常用: 1. 编辑器背景-豆沙绿配置:色调85,饱和度123,亮度205: 2. 注释颜色-紫色:rgb(255,0,255): 参考: 改变codeblocks里面各种注释的颜色 常用颜色的RGB值 ...

  9. Faster RCNN 学习笔记

    下面的介绍都是基于VGG16 的Faster RCNN网络,各网络的差异在于Conv layers层提取特征时有细微差异,至于后续的RPN层.Pooling层及全连接的分类和目标定位基本相同. 一). ...

  10. Stack的相关API

    public class Stack<E> extends Vector<E> : Stack类代表后进先出(LIFO)堆栈的对象. 它扩展了类别Vector与五个操作,允许一 ...