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实现的listview效果
Apr 28 Javascript
兼容ie和firefox js关闭代码
Dec 11 Javascript
可自定义速度的js图片无缝滚动示例分享
Jan 20 Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
jQuery自定义数值抽奖活动代码
Jun 11 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
React实践之Tree组件的使用方法
Sep 30 Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
Vue单页应用引用单独的样式文件的两种方式
Mar 30 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 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中json_encode中文编码问题分析
2011/09/13 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
使用python实现strcmp函数功能示例
2014/03/25 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python中static相关知识小结
2018/01/02 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
ORACLE十问
2015/04/20 面试题
《黄河颂》教学反思
2014/02/07 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
高三毕业评语
2014/12/31 职场文书
放弃继承权公证书
2015/01/23 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书