1、assert.throws(block, [error], [message]):

assert.throws(
function(){
throw new Error('wrong');
},
Error
);
//通过
assert.throws(
function(){
throw new Error('wrong');
},
/value/ //正则表达式
);
//wrong
assert.throws(
function(){
throw new Error('wrong');
},
function(err){
console.log('err:'+err);
if((err instanceof Error) && /value/.test(err) ){
return true;
}
},
'error' //好像没用啊
);
//wrong

2、assert.ifError(value):为true时异常,常用语检查回调中的error参数。 

3、assert.strictEqual(actual, expected, [message]):===

assert.notStrictEqual(actual, expected, [message]):!==

   抛出异常时,会显示message。

4、assert.deepEqual(actual, expected, [message]):对象深度匹配

   assert.notDeepEqual(actual, expected, [message]):对象非深度匹配 

匹配规则:1.采用===比较;2.比较他们是否是Buffers,如果是则比较长度,接下来每字节每字节的比较;3.是用==比较;4.最后如果参数是object对象,则比较他们得属性长度和属性值。可以看的出来,这两个方法性能上可能要差些,所以只有在需要的时候才使用他们。 

5、assert.equal(actual, expected, [message]):简单值的比较

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

false:false,0,空值(''),null,undefined,NaN。

6、assert(value, message), assert.ok(value, [message]):assert.equal(true, !!value, message)的简化版

7、assert.fail(actual, expected, message, operator):

assert.fail(23, 42, undefined, '###');         //23 ### 42
assert.fail(23, 42, 'fails', '###');           //wrong

stackoverflow上说:在构建自己的测试框架时,operator会有用;如果message为undefined时,才会有用。

node API assert的更多相关文章

  1. 配置web pack loader 报错:Module build failed: Error: The node API for `babel` has been moved to `babel-core`.

    报错如下 Module build failed: Error: The node API for `babel` has been moved to `babel-core`. 在我配置loader ...

  2. 部署node api的二三事

    当接到node开发node api的时候,我就想用docker来部署,众所周知,node的版本更新迭代很快.很多以前需要babel后才能采用的方法正在不断被node 原生的支持.如果随便更换生产服务器 ...

  3. Headless Chrome Node API

    puppeteer Headless Chrome Node API https://github.com/GoogleChrome/puppeteer https://pptr.dev/ PWA h ...

  4. node api 之:Error

    Node.js 中运行的应用程序一般会遇到以下四类错误: 标准的 JavaScript 错误: <EvalError> : 当调用 eval() 失败时抛出. <SyntaxErro ...

  5. Puppeteer: 更友好的 Headless Chrome Node API

    很早很早之前,前端就有了对 headless 浏览器的需求,最多的应用场景有两个 UI 自动化测试:摆脱手工浏览点击页面确认功能模式 爬虫:解决页面内容异步加载等问题 也就有了很多杰出的实现,前端经常 ...

  6. node api 之:stream - 流

    stream 模块可以通过以下方式使用: const stream = require('stream'); 流可以是可读的.可写的.或者可读可写的. 所有的流都是 EventEmitter 的实例. ...

  7. node api 之:Buffer

    在 ECMAScript 2015 引入 TypedArray 之前,JavaScript 语言没有读取或操作二进制数据流的机制. Buffer 类被引入作为 Node.js API 的一部分,使其可 ...

  8. node API

    看了这么久nodejs,它包含哪些基础的API,自己心中都没有数,该完整地看看基础的API了. 见过的: assert:编写程序的单元测试用例 buffer:直接处理2进制数据 child_proce ...

  9. node api 之:process - 进程

    process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程. 因为是全局变量,所以无需使用 require().

随机推荐

  1. 必备 .NET - C# 脚本

    作者:Mark Michaelis | 2016 年 1 月 Link: https://msdn.microsoft.com/zh-cn/magazine/mt614271.aspx 随着 Visu ...

  2. oracle 基本信息

    查看Oracle是32位还是64位的方法: 方法一:使用sqlplus 64位: [oracle@qs-wg-db2 ~]$ sqlplus / as sysdba;   SQL*Plus: Rele ...

  3. Mycat入门及简单规则

    以下都来自网络: 官网: http://www.mycat.io/ 官网配置文件解析: https://github.com/MyCATApache/Mycat-Server/wiki/9.0-%E6 ...

  4. electron sendInputEvent keyboard

    https://github.com/electron/electron/issues/5005 webview.getWebContents().sendInputEvent({ type: 'ch ...

  5. maven package install deploy

    1.maven package:打包到本项目,一般是在项目target目录下. 如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目, ...

  6. oracle杀掉执行的死循环存储过程

    select * from v$db_object_cache where locks > 0 and pins > 0 and type='PROCEDURE'; select b.si ...

  7. Frog and Portal(思维好题)

    Frog and Portal https://hihocoder.com/problemset/problem/1873 时间限制:1000ms 单点时限:1000ms 内存限制:512MB 描述 ...

  8. springmvc与struts2的不同

    1.springmv的入口是一个servlet,即前端控制器.而struts2入口是一个fliter过滤器. 2.springmvc是基于开发方法(一个url对应一个方法,通过注解的方式进行访问),请 ...

  9. 使用Spring框架来管理模板类

    1. 刚才编写的代码使用的是new的方式,应该把这些类交给Spring框架来管理. 2. 修改的步骤如下 applicationContext.xml中<beans>标签的开头配置为: * ...

  10. linux下nginx tomcat集群

    集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器. 这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程 ...