Node.js利用断言模块assert进行单元测试的方法

发布时间 - 2026-01-11 03:27:32    点击率:

前言

对于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"
);

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# node  # assert模块  # nodejs  # 单元测试  # assert  # Node.js assert断言原理与用法分析  # node.js学习之断言assert的使用示例  # 学习node.js 断言的使用详解  # 抛出  # 不完全  # 要为  # 值为  # 相关内容  # 第一个  # 说了  # 也能  # 不多  # 有一定  # 可以通过  # 自定义  # 不为  # 这篇文章  # 谢谢大家  # 回调  # 倾向于  # 将给  # 方法如下  # 当为 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何在阿里云购买域名并搭建网站?  网站制作壁纸教程视频,电脑壁纸网站?  公司门户网站制作流程,华为官网怎么做?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  高端智能建站公司优选:品牌定制与SEO优化一站式服务  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel怎么调用外部API_Laravel Http Client客户端使用  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何使用Eloquent进行子查询  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  网站页面设计需要考虑到这些问题  Linux网络带宽限制_tc配置实践解析【教程】  Linux安全能力提升路径_长期防护思维说明【指导】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何实现文件上传和存储?(本地与S3配置)  如何快速搭建高效简练网站?  WordPress 子目录安装中正确处理脚本路径的完整指南  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何用景安虚拟主机手机版绑定域名建站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel Fortify是什么,和Jetstream有什么关系  如何在Windows 2008云服务器安全搭建网站?  如何打造高效商业网站?建站目的决定转化率  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel如何生成URL和重定向?(路由助手函数)  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  详解Android图表 MPAndroidChart折线图  Python制作简易注册登录系统  常州企业网站制作公司,全国继续教育网怎么登录?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  想要更高端的建设网站,这些原则一定要坚持!  如何在Tomcat中配置并部署网站项目?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel如何实现多对多模型关联?(Eloquent教程)  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何为API生成Swagger或OpenAPI文档