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. JavaScript Set Cursor Style

    <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <titl ...

  2. HDU2094(产生冠军)题解

    HDU2094(产生冠军)题解 以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 根据给定现有比赛结果推断分析冠军.(这描述...我建议还是看题吧,题不长) [题目分析] 给出的 ...

  3. javac编译原理(一)

    我们都知道,计算机只能识别二进制语言,是不能直接识别java c c++等高级语言的.将高级语言转化成计算机可以是别的二进制语言,这个过程就叫编译. 有次面试,面试官问了一道“java的编译原理是什么 ...

  4. css样式表中四种属性选择器

    学习此连接的总结http://developer.51cto.com/art/201009/226158.htmcss样式表中四种属性选择器1> 简易属性 tag[class]{ font-we ...

  5. 修改已经提交到远端的git commit信息

    有这么一种场景,就是以前没有设置用户名和邮箱,导致提交时git commit信息中用户信息不正确.这样的情况导致后来我们提交代码到git上面时因为身份验证错误,只有到 push 阶段了才发现提交不上去 ...

  6. 互联网大公司的CEO,多是程序员出身

    互联网有个现象,大公司的CEO,多是程序员出身.举例如下:------马化腾93年深大计算机系毕业,进入润迅通信从软件工程师做到开发部主管,98年11月与张志东等凑齐50万元注册腾讯公司,99年2月开 ...

  7. javascript实现当前页导航激活

    html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...

  8. Android Studio之build.gradle小技巧

    一: 当你工程引用android 的support包的时候,常常会这样写: dependencies { compile 'com.android.support:recyclerview-v7:22 ...

  9. Android 抓包,监控流量工具之 mitmproxy

    转:http://greenrobot.me/devpost/how-to-debug-android-http-get-started/ mitmproxy实践教程之调试 Android 上 HTT ...

  10. 关于Git和Github

    英文原文:Ten Things You Didn't Know Git And GitHub Could Do Git 和 GitHub 都是非常强大的工具.即使你已经使用他们很长时间,你也很有可能不 ...