npm 包 sinon-chai 使用教程

简介

sinon-chai 是一个常用的测试工具,它结合了 sinon 和 chai 两个包的功能,以便于编写更加简洁和可读性强的测试代码。在本文中,我们将介绍如何使用 sinon-chai 来进行前端单元测试。

安装

在使用 sinon-chai 之前,需要先安装 sinon 和 chai 这两个包。可以通过以下命令进行安装:

--- ------- ----- ---- ----------

接下来,安装 sinon-chai:

--- ------- ---------- ----------

使用

安装完成后,在测试文件中引入所需的包:

----- ---- - ----------------
----- ----- - -----------------
----- --------- - ----------------------

--------------------

这段代码中,我们首先引入了 chai 和 sinon 这两个包,并使用 require 方法将它们引入到当前文件中。然后,我们又引入了 sinon-chai 包,并使用 chai.use 方法将其添加到 chai 的插件列表中,以便后续使用。

断言

接下来,我们将介绍一些与断言相关的函数,这些函数是 sinon-chai 提供的。

expect().to.have.been.called

该断言用于判断某个方法是否被调用过。

----- --- - ------------
------------------

--------------------------------

expect().to.have.been.calledOnce

该断言用于判断某个方法是否被调用了一次。

----- --- - ------------
------------------

------------------------------------

expect().to.have.been.calledTwice

该断言用于判断某个方法是否被调用了两次。

----- --- - ------------
------------------

-------------------------------------

expect().to.have.callCount()

该断言用于判断某个方法被调用的次数。

----- --- - ------------
------------------

---------------------------------

Stub

在测试中,有时需要模拟一个函数或者方法,并返回指定的结果。这时可以使用 sinon 的 stub 方法来实现。

----- ---- - ------------------ ------------

其中,object 表示要模拟的对象,methodName 表示要模拟的方法名。接下来,我们将介绍一些与 stub 相关的函数。

expect(stub).to.have.been.calledWith()

该断言用于判断某个方法是否被正确地调用了。

----- ---- - -------------
-------------------

----------------------------------------- -----

stub.returns()

该方法用于指定 stub 方法的返回值。

----- ---- - -------------------------

stub.callsArg()

该方法用于指定 stub 方法的回调函数。

----- ---- - -------------------------

Mock

Mock 是一种强化版的 Stub,它除了可以模拟方法的返回值,还可以判断该方法被调用的次数和参数等。

在使用 Mock 时,需要先创建一个 Mock 对象,并调用相应的方法。以下是一些常用的 Mock 方法:

mock.expects()

该方法用于指定要测试的方法,并返回一个 expectation 对象。

----- ---- - -------------------
---------------------------

expectation.once()

该方法用于指定该方法只能被调用一次。

----- ---- - -------------------
----- ----------- - ----------------------------------

expectation.twice()

该方法用于指定该方法只能被调用两次。

----- ---- - -------------------
----- ----------- - -----------------------------------

expectation.withArgs()

该方法

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/50943