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世界的广阔画卷上,测试如同细致的笔触,勾勒出可靠性的轮廓,尽显工匠的精神。

相关推荐
hboot30 分钟前
💪别再迷茫!一份让你彻底掌控 TypeScript 类型系统的终极指南
前端·typescript
GISer_Jing1 小时前
深入拆解Taro框架多端适配原理
前端·javascript·taro
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于VUE的藏品管理系统的设计与实现为例,包含答辩的问题和答案
前端·javascript·vue.js
San30.1 小时前
深入理解 JavaScript:手写 `instanceof` 及其背后的原型链原理
开发语言·javascript·ecmascript
北冥有一鲲2 小时前
LangChain.js:RAG 深度解析与全栈实践
开发语言·javascript·langchain
用户28907942162712 小时前
Spec-Kit应用指南
前端
酸菜土狗2 小时前
🔥 手写 Vue 自定义指令:实现内容区拖拽调整大小(超实用)
前端
ohyeah2 小时前
深入理解 React Hooks:useState 与 useEffect 的核心原理与最佳实践
前端·react.js
Cache技术分享2 小时前
275. Java Stream API - flatMap 操作:展开一对多的关系,拉平你的流!
前端·后端
apollo_qwe3 小时前
前端缓存深度解析:从基础到进阶的实现方式与实践指南
前端