Nodejs学习笔记——Assert(断言)
- 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)
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,"","+")
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")
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")
Tests shallow, coercive non-equality with the not equal comparison operator ( != ).
Note: 综上,是对比结果为false时抛出异常。
Tests for deep equality.
Note: 采用以下步骤比较,只要一个步骤不匹配就抛出异常:
- 采用
===比较; - 比较他们是否是Buffers,如果是则比较长度,接下来每字节每字节比较;
- 用
==比较; - 最后如果参数是Object对象,则比较他们的属性长度和属性值
Tests for any deep inequality.
Tests strict equality, as determined by the strict equality operator ( === )
Tests strict non-equality, as determined by the strict not equal operator ( !== )
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"
);
Expects block not to throw an error, see assert.throws for details.
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(断言)的更多相关文章
- Nodejs学习笔记(四)——支持Mongodb
前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs ...
- Nodejs学习笔记(三)——一张图看懂Nodejs建站
前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...
- Nodejs学习笔记(二)——Eclipse中运行调试Nodejs
前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...
- NodeJS学习笔记之Connect中间件模块(一)
NodeJS学习笔记之Connect中间件模块(一) http://www.jb51.net/article/60430.htm NodeJS学习笔记之Connect中间件模块(二) http://w ...
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- Nodejs学习笔记(十六)--- Pomelo介绍&入门
目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- Nodejs学习笔记(十六)—Pomelo介绍&入门
前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...
随机推荐
- 什么是 CSS 预处理器?
什么是 CSS 预处理器? 就CSS本身而言,对于大多数Web前端从业人员来说就不是问题.学过CSS的人都知道,它不是一种编程语言.你可以用它开发网页样式,但是没法用它编程.换句话说,CSS基本上是 ...
- c# 集合的交集、并集、差集
, , , , }; , , , , , }; var jiaoJi = oldArray.Intersect(newArray).ToList();//2,4,5 var oldChaJi = ol ...
- (转)python struct简介
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- listView 单选实现
上一篇知道可以使用android自带的listview的chiocemode的单选模式实现.但那个布局是系统自带的checkedTextView,有时候我们需要自己实现布局,那么下面我们开始实现 ...
- 嵌入式程序员应知道的0x10个基本问题
来源:网络 嵌入式程序员应知道的0x10个基本问题 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 ...
- debian install & configure(2)-drivers-nvidia
==========================================手动编译卸载受限驱动 :apt-get --purge remove nvidia-*apt-get --purge ...
- jsonarray----->list
JSONArray--------------->List----------------->Adapter------------------>ListView
- List<int>是值类型还是引用类型
class Program { static void Main(string[] args) { List<int> lst = new List<int>(); lst.A ...
- java线程管理
java线程管理 参见: http://harmony.apache.org/subcomponents/drlvm/TM.html 1. 修订历史 2. 关于本文档 2.1. 目的 2.2. 面向的 ...
- poj1007 qsort快排
这道题比较简单,但通过这个题我学会了使用c++内置的qsort函数用法,收获还是很大的! 首先简要介绍一下qsort函数. 1.它是快速排序,所以就是不稳定的.(不稳定意思就是张三.李四成绩都是90, ...