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实现控制台控件的代码
Sep 04 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
Jun 12 Javascript
js Math 对象的方法
Sep 01 Javascript
JS原型对象的创建方法详解
Jun 16 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
详解springmvc 接收json对象的两种方式
Dec 06 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
微信小程序实现留言板(Storage)
Nov 02 Javascript
vue.config.js常用配置详解
Nov 14 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
vue实现lodop打印功能的示例
Nov 11 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电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php生成缩略图的类代码
2008/10/02 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
PHP制作万年历
2015/01/07 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python如何运行js语句
2020/09/09 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
留学推荐信怎么写
2014/01/25 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
绵山导游词
2015/02/05 职场文书
旷工辞退通知书
2015/04/17 职场文书
同意离婚答辩状
2015/05/22 职场文书
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android