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 相关文章推荐
看了就知道什么是JSON
Dec 09 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
Jul 09 Javascript
AngularJS模块学习之Anchor Scroll
Jan 19 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
Aug 18 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
Oct 14 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
浅谈Fetch 数据交互方式
Dec 20 Javascript
为什么要使用Vuex的介绍
Jan 19 Javascript
react组件基本用法示例小结
Apr 27 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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缓存技术的多种方法小结
2012/08/14 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
JavaScript创建、读取和删除cookie
2019/09/03 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
python encode和decode的妙用
2009/09/02 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python 自动去除空行的实例
2018/07/24 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
市场营销专业应届生自荐信
2014/06/19 职场文书
应聘教师求职信
2014/07/19 职场文书
铁路安全反思材料
2014/12/24 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
教师研修随笔感言
2015/11/18 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
numpy数据类型dtype转换实现
2021/04/24 Python
浅析Django接口版本控制
2021/06/26 Python