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

相关推荐
qetfw10 分钟前
Bash 函数与流程控制:read、if、for、case 验证
linux·前端·javascript·bash
鬼手点金1 小时前
从 API 消息到模型 Token:Chat Template
java·前端·javascript·数据库·人工智能·深度学习·1024程序员节
Shadow(⊙o⊙)1 小时前
LangChain 自定义工具全解析:从 @tool 到 bind_tools 的完整调用链路
java·服务器·前端·1024程序员节
小poop1 小时前
HTML 基础入门:从结构到常用标签详解
前端
jiangliushi61 小时前
GPT-6.1 Sol 免费用:PowerShell 装 Codex 报“禁止运行脚本 npm.ps1”?一条命令解决
前端·gpt·npm
计算机魔术师2 小时前
日均500万亿词元,国内推理速度翻倍却仍落后国外——差距卡在哪
前端
excel2 小时前
用 Node.js 搭建一套可持续获客的 SEO 内容系统:前端工程师 30 天实战方案
前端·后端
yma162 小时前
从零搭建 P2P 聊天室:yma16.cloud 在线工具实战
前端·1024程序员节
Mr.Pascal3 小时前
Javascript之什么是作用域?
javascript·1024程序员节