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 相关文章推荐
js 编写规范
Mar 03 Javascript
js进行表单验证实例分析
Feb 10 Javascript
javascript实现连续赋值
Aug 10 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
原生js实现回复评论功能
Jan 18 Javascript
windows下vue.js开发环境搭建教程
Mar 20 Javascript
bootstrap Table插件使用demo
Aug 07 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
Mar 15 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
Mar 06 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
微信小程序实现电子签名功能
Jul 29 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
用session做客户验证时的注意事项
2006/10/09 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
python实现socket端口重定向示例
2014/02/10 Python
理解Python垃圾回收机制
2016/02/12 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python表达式的优先级详解
2020/02/18 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python中get和post有什么区别
2020/06/19 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
教你怎样写好自我评价
2013/10/05 职场文书
初一地理教学反思
2014/01/16 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Python音乐爬虫完美绕过反爬
2021/08/30 Python
JVM之方法返回地址详解
2022/02/28 Java/Android