unexpected-sinon 是一个基于 Sinon.js 和 Unexpected.js 的 npm 包,为单元测试提供了强大的断言库。本文将详细介绍 unexpected-sinon 的使用方法和示例代码。
安装 unexpected-sinon
使用 npm 安装 unexpected-sinon:
--- ------- ---------------- ----------
引入 unexpected-sinon
在测试文件中引入 unexpected-sinon:
----- ------ - ---------------------- ----- ----- - ----------------- ----------------------------
基本用法
unexpected-sinon 提供了大量的断言方法,我们可以通过 expect.sinon 来访问这些方法。下面是一些常用的断言方法:
toHaveBeenCalled
判断一个 sinon spy 是否被调用过:
------------------- --- ---- --- ---- --------- ------------------- ---- -- ---- ---- --------- ------------------- --- ---- ---- ---------
toHaveBeenCalledOnce
判断一个 sinon spy 是否只被调用了一次:
------------------- --- ---- ---- ------ -------
toHaveBeenCalledWith
判断一个 sinon spy 是否被传递了指定的参数调用:
----- --- - ------------ ---------- ------- ----------- --- ---- ---- ------ ------ ------ -------
toHaveReturned
判断一个 sinon stub 是否返回了指定的值:
----- ---- - ------------------------- ------------ --- ---- ---------- ----
toHaveReturnedWith
判断一个 sinon stub 是否以指定的参数返回:
----- ---- - ------------- --------------------------------- ------------ --- ---- -------- ------ ----
高级用法
unexpected-sinon 还提供了一些高级的断言方法,例如:
toHaveAlwaysReturned
判断一个 sinon stub 是否始终返回指定的值:
----- ---- - ------------------------- ------------ --- ------ ---- ---------- ----
toHaveAlwaysThrown
判断一个 sinon stub 是否始终抛出指定的错误:
----- ---- - ----------------------- --------------- ------------ --- ------ ---- -------- --- ---------------
toHaveCallCount
判断一个 sinon spy 被调用的次数:
----- --- - ------------ ------ ------ ----------- --- ---- ---- ------- ---
toHaveExactlyNthCall
判断一个 sinon spy 在第 N 次调用时传递了指定的参数:
----- --- - ------------ ----------- ----------- ----------- --- ---- ------- --- ------ -- -------
toHaveBeenCalledOnceWith
判断一个 sinon spy 是否只被调用一次,并且使用指定的参数调用:
----- --- - ------------ ---------- ------- ----------- --- ---- ---- ------ ---- ------ ------ -------
示例代码
下面是一个简单的示例代码,使用了上述提到的一些断言方法:
----- ------ - ---------------------- ----- ----- - ----------------- ---------------------------- ------------------- ---------- - ---------- ---- --- --- ---- ---- ----- --- ------- ---------- - ----- --- - ------------ ---------- ------- ----------- --- ---- ---- ------ ---- ------ ------ ------- --- ---------- ------ -- ---- --- ------ ---------- - ----- ---- - ------------------------- ------------ --- ---- ---------- ---- --- ---
总结
unexpected-sinon 是一个非常强大的单元测试断言库,它结合了 Sinon.js 和 Unexpected.js 的功能,可以大大简化我们的单元测试工作。本文介绍了 unexpected-sinon 的安装、引入和基本用法,以及一些高
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/42064