在前端测试框架中,Chai.js 是一个很受欢迎的断言库,可以与多种测试框架搭配使用,例如 Mocha,Karma,Jest 等等。本篇文章将详细讲解 Chai.js 的常见使用场景及其技巧,并提供示例代码。
安装 Chai.js
使用 NPM 安装 Chai.js:
--- ------- ----
安装完成后,在测试文件中导入 Chai.js:
----- ---- - ----------------
常见使用场景
相等断言
Chai.js 提供了多种相等断言方式,可以用来测试两个值是否相等。
----- ------ - ------------ --------------- -- -- -- ---- --------------------- ---- -- - --- -------- ------------------ -- - -- - -- - -- ---------- ------------------------ ----- -- - ---- -------
布尔断言
Chai.js 还提供了 DSL 方式的布尔断言,例如:
----- ------ - ------------ ----- --- - ------ ----- ------ - - ---- --------- -------- ---------- ------- --------- ------------- ----------- -- -------------------------------- -------------------------------------------------------- ----------------------------------------------------- ---------
异常断言
有时候想要测试代码是否抛出了异常,可以使用 Chai.js 的异常断言:
----- ------ - ------------ --------------- -- - ----- --- ----------------- -- -------
Promise 断言
Chai.js 还支持 Promise 断言,例如:
----- ------ - ------------ ------------------------------------------ ------------------------------------ --------------
Sinon.js 配合使用
Chai.js 还可以搭配 Sinon.js 使用,例如:
----- ----- - ----------------- ----- ------ - ------------ ------------ ------- -- -- - --- ------ ------------- -- - ----- - ---------------------- --- ------------ -- - ---------------- --- ------ ------------ -- -- - ----- -- - ------------ -------------- ----- ---------------- -- -- ----- ------------ ------- --------------------------------- --- ---
技巧详解
使用 .include() 替代 .deep.property()
在许多时候,使用 .include() 比 .deep.property() 更容易:
----- --- - - -- - -- - -- - - - -- ------------------------ -- - -- - -- - - - --- -- -- ------ ---- --------- -- ----------------------------- -- - -- - -- - - - --- -- -- ------ ------ --------- -- --------------------------------------------- -- -------- --- -
使用 .closeTo() 替代 .equal()
如果要测试浮点数,则应使用 .closeTo() 替代 .equal():
---------------------------- ----- -- -----------
使用 .any() 替代 .include()
如果不需要查找第一个元素,只需检查数组中是否包含任何元素,请使用 .any():
---------- -- ------------------------------ ----
使用 .a() 或者 .an() 替代 .typeOf() 或 .instanceOf()
Chai.js 提供了 DSL 的语法,使代码更易读:
--------------------------------- -------------------------------------
总结
Chai.js 是测试框架中的一款强大的断言库,可以配合多种测试框架使用,例如 Mocha,Karma,Jest 等等。本篇文章介绍了 Chai.js 的常见使用场景,以及一些技巧,希望对于初学者能提供一些指导意义。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/646474b0968c7c53b0551662