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 相关文章推荐
用javascript获取地址栏参数
Dec 22 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
vue项目常用组件和框架结构介绍
Dec 24 Javascript
使用JavaScript破解web
Sep 28 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 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&amp;mysql(二)
2006/10/09 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
好的促销活动方案
2014/08/21 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
年终工作总结范文2014
2014/11/27 职场文书