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调用flash的效果代码
Apr 26 Javascript
prototype Element学习笔记(篇一)
Oct 26 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
Angularjs实现mvvm式的选项卡示例代码
Sep 08 Javascript
详解Node.js中的事件机制
Sep 22 Javascript
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
手把手教你从零开始react+antd搭建项目
Jun 03 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
通过html表格发电子邮件
2006/10/09 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
使用PDB模式调试Python程序介绍
2015/04/05 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python中按值来获取指定的键
2019/03/04 Python
Django用户认证系统 User对象解析
2019/08/02 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
英语系毕业生自荐信
2013/10/31 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
工地安全检查制度
2014/02/04 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
新郎结婚感言
2015/07/31 职场文书
创业计划书之家教托管
2019/09/25 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript