Assert - a:actual e:expected m:message o:operator v:value b:block
assert.fail(a, e, m, o)
assert(v, m), assert.ok(v, [m])
assert.equal(a, e, [m])
assert.notEqual(a, e, [m])
assert.deepEqual(a, e, [m])
assert.notDeepEqual(a, e, [m])
assert.strictEqual(a, e, [m])
assert.notStrictEqual(a, e, [m])
assert.throws(b, [error], [m])
assert.doesNotThrow(b, [m])
assert.ifError(v)
assert.fail(a, e, m, o)

Throws an exception that displays the values for actual and expected separated by the provided operator.

Note: Always throws an exception and display the message which will be "actual operator expected" if it's omited.

e.g assert.fail(1,1,"Always throws this message","=") and assert.fail(1,1,"","+")

assert(v, [m]), assert.ok(v, [m])

Tests if value is truthy, it is equivalent to assert.equal(true, !!value, message);

Note: If the value isn't a truth-value, it throws and exception and display the message which will be "value == true" if it's omited.

e.g assert(0) and assert.ok(0,"Throws me")

assert.equal(a, e, [m])

Tests shallow, coercive equality with the equal comparison operator ( == ).

e.g assert.equal(1,2,"They are not equal") and assert.equal(1,1,"would not show me")

assert.notEqual(a, e, [m])

Tests shallow, coercive non-equality with the not equal comparison operator ( != ).

Note: 综上,是对比结果为false时抛出异常。

assert.deepEqual(a, e, [m])

Tests for deep equality.

Note: 采用以下步骤比较,只要一个步骤不匹配就抛出异常:

  1. 采用===比较;
  2. 比较他们是否是Buffers,如果是则比较长度,接下来每字节每字节比较;
  3. ==比较;
  4. 最后如果参数是Object对象,则比较他们的属性长度和属性值
assert.notDeepEqual(a, e, [m])

Tests for any deep inequality.

assert.strictEqual(a, e, [m])

Tests strict equality, as determined by the strict equality operator ( === )

assert.notStrictEqual(a, e, [m])

Tests strict non-equality, as determined by the strict not equal operator ( !== )

assert.throws(b, [error], [m])

Expects block to throw an error. error can be constructor, RegExp or validation function.

Validate instanceof using constructor:

assert.throws(
function() {
throw new Error("Wrong value");
},
Error
);

Validate error message using RegExp:

assert.throws(
function() {
throw new Error("Wrong value");
},
/value/
);

Custom error validation:

assert.throws(
function() {
throw new Error("Wrong value");
},
function(err) {
if ( (err instanceof Error) && /value/.test(err) ) {
return true;
}
},
"unexpected error"
);
assert.doesNotThrow(b, [m])

Expects block not to throw an error, see assert.throws for details.

assert.ifError(v)

Tests if value is not a false value, throws if it is a true value. Useful when testing the first argument, error in callbacks.

Note: it throws error when the value is a truth-value!

Nodejs学习笔记——Assert(断言)的更多相关文章

  1. Nodejs学习笔记(四)——支持Mongodb

    前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs ...

  2. Nodejs学习笔记(三)——一张图看懂Nodejs建站

    前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...

  3. Nodejs学习笔记(二)——Eclipse中运行调试Nodejs

    前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...

  4. NodeJS学习笔记之Connect中间件模块(一)

    NodeJS学习笔记之Connect中间件模块(一) http://www.jb51.net/article/60430.htm NodeJS学习笔记之Connect中间件模块(二) http://w ...

  5. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  6. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  7. Nodejs学习笔记(十六)--- Pomelo介绍&入门

    目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...

  8. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  9. Nodejs学习笔记(十六)—Pomelo介绍&入门

    前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...

随机推荐

  1. web中通过注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>版本

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![e ...

  2. asp.net几种<% %>用法

    在asp.net应用程序中,在asp.net页面常用的<%@ %>.<%# %>.<%= %>.在全球化的项目中使用<%$ %>绑定资源项目,在asp. ...

  3. 观察者模式:猫叫鼠跑人醒(C#)

    本着菜鸟先飞的想法,决定把平时遇到的知识点记录下来,一来是加深理解,二来是方便以后自己查阅.当您看到我这篇文章的时候,觉得代码有哪里不足的地方,请多指教,谢谢.(命名不规范是为了加深自己的理解,多多见 ...

  4. Unity之GUI控件

    在这里就贴一个连接吧:GUI

  5. BZOJ 3648: 寝室管理( 点分治 + 树状数组 )

    1棵树的话, 点分治+你喜欢的数据结构(树状数组/线段树/平衡树)就可以秒掉, O(N log^2 N). 假如是环套树, 先去掉环上1条边, 然后O(N log^2 N)处理树(同上); 然后再O( ...

  6. Ubuntu packages multi-architectures

    Show current machine architecture dpkg --print-architecture It's built-in to the currently installed ...

  7. PHP开发调试环境配置

    ——基于wamp和Eclipse for PHP Developers 引言 为了搭建PHP开发调试环境,我曾经在网上查阅了无数的资料,但没有一种真正能够行的通的.因为PHP开发环境需要很多种软件相互 ...

  8. MYSQ 查看 2 进制日志

    方法 1: myqlbinlog filename; ------------------------------------------------------------------------- ...

  9. Linux06--Shell程序设计02 数据流重定向与管道

    包含3种数据流: •标准输入(stdin):代码为0,符号为<或<<; •标准输出(stdout):代码为1,符号为>或>>; •标准错误输出(stderr):代码 ...

  10. linux查看系统的日志的一些实用操作

    last -a 把从何处登入系统的主机名称或ip地址,显示在最后一行. -d 指定记录文件.指定记录文件.将IP地址转换成主机名称. -f <记录文件> 指定记录文件. -n <显示 ...