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 06 Javascript
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
easyui Droppable组件实现放置特效
Aug 19 Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
javascript 构建模块化开发过程解析
Sep 11 Javascript
JS实现json数组排序操作实例分析
Oct 28 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
js实现贪吃蛇小游戏(加墙)
Jul 31 Javascript
antd配置config-overrides.js文件的操作
Oct 31 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判断手机是IOS还是Android
2015/12/09 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
python 循环while和for in简单实例
2016/08/16 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
基于Python的OCR实现示例
2020/04/03 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
应届生个人求职信模板
2013/11/26 职场文书
知识竞赛活动方案
2014/02/18 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
捐资助学感谢信
2015/01/21 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
html实现弹窗的实例
2021/06/09 HTML / CSS