npm 包 expect-called 使用教程

阅读时长 4 分钟读完

介绍

在前端开发过程中,我们经常需要对函数的调用次数进行测试。而 expect-called 是一个能够让我们方便地进行函数调用次数测试的 npm 包。本文将介绍 expect-called 的使用方法,帮助大家更好地体验这个工具。

安装

你可以通过 npm 来进行安装 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

纠错
反馈