Chai.js 断言库完整中文参考手册 - BDD/TDD 测试实战指南
关于本站:第三方整理的中文文档站,非官方页面;内容来自公开资料整理,功能与界面以官方最新版为准。
Chai 断言库
Chai 是一个轻量级、可读性极强的 JavaScript 断言库,专为 Node.js 和浏览器环境设计。它不依赖特定测试框架——可以与 Mocha、Jest、Vitest、Karma 等任意测试运行器自由搭配。
本站整理了 Chai 的三种断言风格(expect / should / assert)完整 API、链式语言修饰器、按数据类型分类的断言方法、异步测试与 HTTP 接口测试场景、插件生态以及常见陷阱规避,适合有一定 JavaScript 基础、正在搭建或完善测试体系的开发者作为实战参考手册使用。
产品档案速览
| 项目 | 说明 |
|---|---|
| 官方名称 | Chai Assertion Library |
| 当前版本 | v5.2.x(npm) |
| 开源协议 | MIT |
| 运行环境 | Node.js ≥ 12、IE 9+、Chrome 7+、Firefox 4+、Safari 5+ |
| 安装方式 | npm install chai |
| 断言风格 | expect(BDD)/ should(BDD)/ assert(TDD) |
| 配套框架 | Mocha(推荐)、Jest、Vitest、Karma、Zombie 等 |
| 插件数量 | 官方 + 社区超过 200 款 |
| 仓库地址 | github.com/chaijs/chai |
| 文档资源 | 英文官方文档 + 中文镜像站 |
核心亮点
- 三种风格任你选:链式 BDD 风格(expect / should)提供自然语言般的断言表达,经典 TDD 风格(assert)适合迁移 Node.js 内置 assert 模块。
- 深度相等开箱即用:
.deep修饰器让{a:1}和{a:1}不再因引用不同而判不等。 - 丰富的修饰链:
.not(否定)、.deep(深度)、.any/.all(集合逻辑)等修饰器可以自由组合。 - 插件驱动扩展:通过
chai.use(plugin)机制,生态已覆盖 Promise、HTTP、DOM、Immutable.js、React 组件等场景。 - 浏览器端友好:内置 UMD 构建,AMD / CommonJS / script 标签三种加载方式全支持。
结构导览
快速上手:从安装到写出第一个断言: Chai 是什么
三种断言风格:expect、should、assert 怎么选: expect 风格
语言链与修饰器:让断言更自然的链式语法: 语言链总览
类型判断与值比较:从 typeof 到 deep equality : 类型检查
异步测试与 Promise:配合 chai-as-promised 处理异步场景: 异步测试
HTTP 接口测试:用 chai-http 做集成测试: chai-http 插件
插件生态与自定义:扩展 Chai 的能力边界: 插件基础
常见问题与避坑:踩过的坑一次说清: Chai vs Jest