介绍
在前端开发过程中,我们经常需要对函数的调用次数进行测试。而 expect-called 是一个能够让我们方便地进行函数调用次数测试的 npm 包。本文将介绍 expect-called 的使用方法,帮助大家更好地体验这个工具。
安装
你可以通过 npm 来进行安装 expect-called,只需要执行以下命令即可:
npm install expect-called
使用方法
expect-called 主要提供了两个函数:expectCalled 和 expectCalledTimes。其中,expectCalled 可以检测一个函数是否被调用,而 expectCalledTimes 则可以检测一个函数被调用的次数是否符合要求。
以下是 expectCalled 的调用示例:
-- -------------------- ---- ------- ------ ------------ ---- ---------------- -------- ----- - ------------------- -------- - ----- --- - ------------------ ------ -- ------- ----- ------ ------------------------------- -- ----
在上述示例中,我们首先通过 expectCalled 来创建了一个 spy,然后调用了该 spy 函数。最后,我们使用了 Jest 的 toHaveBeenCalled 方法来判断 spy 函数是否被调用过。
以下是 expectCalledTimes 的调用示例:
-- -------------------- ---- ------- ------ ----------------- ---- ---------------- -------- ----- - ------------------- -------- - ----- --- - ---------------------- --- ------ ------ ------ -- ------- ----- ------ ----- ------ ----- ------ ------------------------------------- -- ----
在上述示例中,我们同样使用 expectCalledTimes 方法来创建了一个 spy,但是这一次我们希望这个 spy 被调用了 3 次。因此,在接下来的代码中,我们调用了 spy 函数三次,并再次使用了 Jest 的 toHaveBeenCalledTimes 方法来判断 spy 函数的调用次数是否符合预期。
注意事项
当一个被 spy 的函数包含了 this 关键字时,我们需要使用 Jest 的 spyOn 方法来进行测试。具体的方法参考如下:
-- -------------------- ---- ------- ------ ------------ ---- ---------------- ----- --- - ----- - ------------------- -------- - - ----- --- - ------------------------- ------- ----- --- - --- ------ ---------------------- ---------- -- ------- ----- ------ ------------------------------- -- ---- ------------------
在上面这个例子中,我们创建了一个包含了 this 关键字的函数 bar,并使用 spyOn 方法来创建了一个 spy。最后,我们在实例化 Foo 之后,调用了 foo.bar 方法,并使用了我们熟悉的 expect 断言语法。
需要注意的是,在使用 spyOn 时,我们需要添加 mockRestore 方法来恢复原始函数的状态。
结语
通过本文的讲解,我们了解了 expect-called 的基本使用方法,并了解了一些需要特别注意的问题。希望这篇文章对大家的前端开发学习和工作都能有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedcb7bb5cbfe1ea0612605