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 相关文章推荐
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
JS使用正则表达式验证身份证号码
Jun 23 Javascript
JS中关于正则的巧妙操作
Aug 31 Javascript
mui框架移动开发初体验详解
Oct 11 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
如何编写一个完整的Angular4 FormText 组件
Nov 18 Javascript
JavaScript实现计算多边形质心的方法示例
Jan 31 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 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 程序员的调试技术小结
2009/11/15 PHP
smarty简单应用实例
2015/11/03 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python del()函数用法
2013/03/24 Python
python动态加载变量示例分享
2014/02/17 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
初中生三年学习生活的自我评价
2013/11/03 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
一帮一活动总结
2014/05/08 职场文书
个人授权委托书
2014/09/15 职场文书
离婚财产处理协议书
2014/09/30 职场文书
新郎结婚保证书
2015/02/26 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
《司马光》教学反思
2016/02/22 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Python实现归一化算法详情
2022/03/18 Python