一、assert

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

测试 actual 参数与 expected 参数是否深度相等。 原始值使用相等运算符==)比较。只测试可枚举的自身属性,不测试对象的原型、连接符、或不可枚举的属性。Map 和 Set 包含的子项也会被测试。子对象中可枚举的自身属性也会被测试。如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。

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

与 assert.deepEqual() 大致相同,但有一些区别:

  1. 原始值使用全等运算符===)比较。Set 的值与 Map 的键使用 SameValueZero 比较。
  2. 对象的原型也使用全等运算符比较。
  3. 对象的类型标签要求相同。
  4. 比较[对象包装器][]时,其对象和里面的值要求相同。

assert.doesNotThrow(block[, error][, message])

断言 block 函数不会抛出错误。

当 assert.doesNotThrow() 被调用时,它会立即调用 block 函数。

如果抛出错误且错误类型与 error 参数指定的相同,则抛出 AssertionError。 如果错误类型不相同,或 error 参数为 undefined,则抛出错误。如果抛出了 AssertionError 且有给 message 参数传值,则 message 参数的值会被附加到 AssertionError 的信息中。

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

使用相等运算符==)测试 actual 参数与 expected 参数是否相等。

如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。

assert.fail(actual, expected[, message[, operator[, stackStartFunction]]])

抛出 AssertionError。 如果 message 参数为空,则错误信息为 actual 参数 + operator 参数 + expected 参数。 如果只提供了 actual 参数与 expected 参数,则 operator 参数默认为 '!='。 如果提供了 message 参数,则它会作为错误信息,其他参数会保存在错误对象的属性中。 如果提供了 stackStartFunction 参数,则该函数上的栈帧都会从栈信息中移除(详见 Error.captureStackTrace)。

assert.ifError(value)

如果 value 为真,则抛出 value。 可用于测试回调函数的 error 参数。

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

测试 actual 参数与 expected 参数是否不深度相等。 与 assert.deepEqual() 相反。

如果两个值深度相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。

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

测试 actual 参数与 expected 参数是否不深度全等。 与 assert.deepStrictEqual() 相反。

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

使用不等运算符!=)测试 actual 参数与 expected 参数是否不相等。

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

使用不全等运算符!==)测试 actual 参数与 expected 参数是否不全等。

assert.ok(value[, message])

测试 value 是否为真值。 相当于 assert.equal(!!value, true, message)

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

使用全等运算符===)测试 actual 参数与 expected 参数是否全等

assert.throws(block[, error][, message])

断言 block 函数会抛出错误。

error 参数可以是构造函数、正则表达式、或自定义函数。

如果指定了 message 参数,则当 block 函数不抛出错误时,message 参数会作为 AssertionError 的错误信息。

注意事项

对于 SameValueZero 比较,建议使用 ES2015 的 Object.is()

因为全等运算符不区分 -0 与 +0。但 Object.is() 可以区分
// 抛出 AssertionError: NaN === NaN
// 因为全等运算符不能用于测试 NaN。
// 但 Object.is() 可以测试。

node.js学习(一)的更多相关文章

  1. NODE.JS学习的常见误区及四大名著

    NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...

  2. Node.js学习系列总索引

    Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...

  3. 【入门必备】最佳的 Node.js 学习教程和资料书籍

    Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...

  4. node.js学习(1)

    新建便笺 3 node.js学习(1) 1)安装 http://nodejs.org/download/下载. 2)编写一个案例 var http=require("http"); ...

  5. 我的Node.js学习历程

    学习一门技术,每个人都有每个人的方法.我的方法很简单,做项目. 基本概念 在搭建一个node网站之前,还是要掌握一些基本的概念的,这里列举一下,具体的内容大家自己到网上去查: npm bower ex ...

  6. Node.js学习之TCP/IP数据通讯

    Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...

  7. Node.js学习起步

    Node.js学习: 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱 ...

  8. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  9. Node.js学习看这里:基础、进阶、文章

    Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用. Node.js采用事件 ...

  10. Node.js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

随机推荐

  1. Object 转 json 工具类

    /** * 把数据对象转换成json字符串 DTO对象形如:{"id" : idValue, "name" : nameValue, ...} * 数组对象形如 ...

  2. struct模块

    struct模块的作用是将数据长度转换成固定长度的内容 一般默认是4个字节 需要注意的是,struct模块是有缺点的,就是struct的int类型或别的类型不是无限制的.当整数大于一定值后,会失败,即 ...

  3. python3编写发送四种http请求的脚本

    python3编写发送http请求的脚本 使用requests包: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html ...

  4. [LeetCode] 34. Find First and Last Position of Element in Sorted Array == [LintCode] 61. Search for a Range_Easy tag: Binary Search

    Description Given a sorted array of n integers, find the starting and ending position of a given tar ...

  5. ASP.NET 预编译命令(解决发布后第一次访问慢问题)

    ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件   @echo off   CD /d C:\Windows\Microsoft.NET\Framewo ...

  6. python-数据

    python基本数据类型 数字 整型 int 123 浮点型 float 3.2 布尔型 bool True/False 复数 complex 1+1j 组 序列 字符串 str "hell ...

  7. JS--理解call、apply和bind

    call.apply和bind call,apply是Function原型中的方法,它们的作用一样,区别在于传入参数的方式不同. call(thisArg, arg1, arg2...) 传入的参数不 ...

  8. Appium基础(四)查找app的appActivity与appPackage

    要查看appActivity需要借助日志:adb logcat>D:/log.log  前提是已经装了Android SDK 在目录D:\Program Files (x86)\android\ ...

  9. Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔

    转自:https://blog.csdn.net/dcrmg/article/details/52561656 一. 图像金字塔 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像 ...

  10. sqli-labs(一)

    第一关:第一关会讲的比较详细,后面的关卡中只有特殊的地方我会单独拿出来说. 第一关是一个很简单的string类型的sql注入,并且会报错,输入参数id=',页面会报错 值得注意的是: 1.报错信息中 ...