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

相关推荐
Spider_Man13 分钟前
JavaScript对象那些坑:初学者必踩的“陷阱”与进阶秘籍
前端·javascript
海螺先生35 分钟前
Cursor 高阶使用指南:AI 辅助开发的深度整合
前端
我在北京coding36 分钟前
Uncaught ReferenceError: process is not defined
前端·javascript·vue.js
Hilaku37 分钟前
我为什么觉得 React 正在逐渐失去吸引力?
前端·react.js·前端框架
用户527096487449039 分钟前
🎨 Stylelint:让你的 CSS 代码优雅如诗
前端
日升39 分钟前
AI 组件库-MateChat 组件大全与主题定制
前端·ai编程·trae
张成AI39 分钟前
A2A JS SDK 完整教程:快速入门指南
javascript·agent·a2a
龚思凯42 分钟前
TypeScript 中 typeof 的全面解析:从基础用法到高级技巧
前端·typescript
itslife43 分钟前
实现 render 函数 - 初始化更新队列
前端·react.js·前端框架
baozj1 小时前
一次表单数据复用引发的 Bug:理解 Vue 中的 data 为何是函数
前端·javascript·vue.js