Js第三方库assert使用技巧

时光在流转,代码在交错,测试如一盏明灯,为开发之路指引方向。在JavaScript的世界里,assert库是确保代码正确性的助手。此文将漫谈assert库的使用技巧,并展示如何在代码的编织中巧妙地植入这些断言技术。

0. 安装

js 复制代码
yarn add assert

or 

npm install assert

1. 断言相等性

最基本的技巧,使用assert.equal校验两值相等。

javascript 复制代码
const assert = require('assert');

assert.equal(3, '3', '3严格等于"3"将不通过,因深知==与===的区别');

2. 断言不相等性

光明与黑暗并存,assert.notEqual揭示不等的真相。

javascript 复制代码
assert.notEqual(3, 4, '3不等于4,这是明晰的');

3. 断言抛出错误

使错误浮出水面,assert.throws捕获异常的身影。

javascript 复制代码
assert.throws(
  () => {
    throw new Error('错误已抛,断言成功!');
  },
  Error,
  '未掷出错误,则断言失败'
);

4. 断言函数不抛出错误

顺势而为,assert.doesNotThrow期待顺畅无误。

javascript 复制代码
assert.doesNotThrow(
  () => {
    // 可靠的函数内容
  },
  '抛出错误时,断言不成立'
);

5. 深度比较对象

探索事物内在,assert.deepStrictEqual见微知著。

javascript 复制代码
assert.deepStrictEqual({a: 1}, {a: 1}, '对象结构及值相等,则断言为真');

6. 断言为真

追求真实,assert.ok辨识真伪。

javascript 复制代码
assert.ok(true, '非真即假,此处只认真');

7. 断言失败

崇尚宽恕,assert.fail定下失败的预言。

javascript 复制代码
assert.fail('断言无条件失败,如同故意置脚绊索');

8. 断言实际值与期望值严格相等

寻根究底,assert.strictEqual识别一丝不苟的完美。

javascript 复制代码
assert.strictEqual(3, 3, '值与类型均需一致,方见严谨');

9. 断言不严格相等

阴阳互补,assert.notStrictEqual对类型严厉。

javascript 复制代码
assert.notStrictEqual(3, '3', '值相同,但类型异,不严格相等');

10. 断言深度不等

触摸表象,assert.notDeepStrictEqual拒绝虚幻的相似。

javascript 复制代码
assert.notDeepStrictEqual({a: 1}, {a: '1'}, '虽似,则非;笃于真净');

结语

断言并非铁面无私的裁决者,而是温文尔雅的向导,引领代码走向优雅和稳健。在此,每一个assert都是对真理的追求,是一滴滴构筑知识海洋的雨露。在JavaScript世界的广阔画卷上,测试如同细致的笔触,勾勒出可靠性的轮廓,尽显工匠的精神。

相关推荐
GIS之路2 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒3 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
Kagol4 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉4 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau4 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生4 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼4 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范
明君879974 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter
进击的尘埃4 小时前
AI 代码审查工具链搭建:用 AST 解析 + LLM 实现自动化 Code Review 的前端工程方案
javascript
juejin_cn4 小时前
[转][译] 从零开始构建 OpenClaw — 第五部分(对话压缩)
javascript