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之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
jQuery实现原理的模拟代码 -6 代码下载
Aug 16 Javascript
PHP中使用微秒计算脚本执行时间例子
Nov 19 Javascript
node.js中的path.basename方法使用说明
Dec 09 Javascript
jQuery中size()方法用法实例
Dec 27 Javascript
JSONP原理及简单实现
Jun 08 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
不使用script导入js文件的几种方法
Oct 27 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
Feb 01 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 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
2019十大人气国漫
2020/03/13 国漫
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
用原生js做单页应用
2017/01/17 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python常见工厂函数用法示例
2018/03/21 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
python Django 创建应用过程图示详解
2019/07/29 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Python如何实现爬取B站视频
2020/05/20 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
蛋糕店创业计划书
2014/05/06 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
师德师风自查总结
2014/10/14 职场文书
临时用工协议书范本
2014/10/29 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
教师培训简讯
2015/07/20 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android