Node.js利用断言模块assert进行单元测试的方法


Posted in Javascript onSeptember 28, 2017

前言

对于NodeJS, assert模块提供了一系列的断言测试,其实这个模块主要倾向于内部使用,但是也能被用于项目中, 可以通过require(‘assert')的方式引入,下面本文将给大家介绍关于Node.js用断言模块assert进行单元测试的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

方法如下:

首先先引入断言assert模块

var assert = require('assert');

1.assert(value, message), assert.ok(value, [message])  //判断中值是否为true

 assert.ifError(value) //测试值是否不为 false,当为 true 时抛出。常用于回调中第一个 error 参数的检查。

var a = 0;
assert(a,'这里需要值为true'); //AssertionError: 这里需要值为true
assert.ok(a,'这里也要为true');
// AssertionError: 这里也要为true

2.assert.fail(actual, expected, message, operator) //抛出异常,有message时显示message,没有使用operator作为为分隔符

var a = 0;
assert.fail(a,1,'a!=1','<'); // AssertionError: a!=1
assert.fail(a,2,'','<');
// AssertionError: 0 < 2

3.assert.equal(actual, expected, [message])   //("=="判断)是否相等 相反:notEqual

 assert.strictEqual(actual, expected, [message])  //("==="判断)是否相等 相反:notStrictEqual

var a = 2;
var a='2';

assert.equal(a,b,'a,b不相等 ==')
assert.notEqual(a,b,'a,b相等')

// AssertionError: a,b相等
assert.strictEqual(a,b,'a,b不完全相等 ===') // AssertionError: a,b不完全相等 ===

4.assert.deepEqual(actual, expected[, message])、// 是否深度匹配  相反: notDeepEqual

var buf1 = new Buffer('abc');
var buf2 = new Buffer('abc');

assert.strictEqual(buf1, buf2, 'buf1和buf2不一样'); //AssertionError: buf1和buf2不一样
assert.notDeepEqual(buf1, buf2, 'buf1和buf2一样'); //AssertionError: buf1和buf2一样

5.assert.throws(block, [error], [message]) //声明一个block用于抛出错误,'error'可以是构造函数,验证函数或者正则表达式

    assert.doesNotThrow(block, [message])//声明模块不抛出错误

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

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

//自定义错误
assert.throws(
 function() {
 throw new Error("Wrong value");
 },
 function(err) {
 if ( (err instanceof Error) && /value/.test(err) ) {
  return true;
 }
 },
 "unexpected error"
);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Extjs入门之动态加载树代码
Apr 09 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
node.js中的socket.io的广播消息
Dec 15 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
vue仿ios列表左划删除
Sep 26 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 #Javascript
node.js学习之断言assert的使用示例
Sep 28 #Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 #Javascript
node.js学习之事件模块Events的使用示例
Sep 28 #Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 #Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 #Javascript
jquery实现左右轮播图效果
Sep 28 #jQuery
You might like
PHP中$_SERVER使用说明
2015/07/05 PHP
php数组指针操作详解
2017/02/14 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
python实现获取序列中最小的几个元素
2014/09/25 Python
Python随机生成数模块random使用实例
2015/04/13 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python怎么自定义捕获错误
2020/06/29 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
教室标语大全
2014/06/21 职场文书
施工安全责任协议书
2016/03/23 职场文书
民事纠纷协议书
2016/03/23 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书