简介
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