在 Jest 中使用 Sinon 测试函数

阅读时长 4 分钟读完

在前端开发过程中,测试是非常重要的一个环节。Jest 是一个流行的 JavaScript 测试框架,而 Sinon 则是一个非常有用的 JavaScript 测试工具,它可以用来模拟函数的行为、捕获函数的调用等等。在本文中,我们将探讨如何在 Jest 中使用 Sinon 来测试函数的例子。

安装 Jest 和 Sinon

在开始之前,我们需要安装 Jest 和 Sinon。你可以通过 NPM 或者 Yarn 来安装它们:

Jest 和 Sinon 都是开源的 JavaScript 库,使用它们可以帮助我们写出更可靠的测试用例。

编写示例代码及测试脚本

在本文中,我们将编写一个小的 Node.js 模块,它将简单地返回两个数字之和的结果。下面是示例代码:

接下来,我们将编写一个测试脚本来测试 add 函数。我们将在测试脚本中使用 Jest 和 Sinon。

首先,我们需要引入 Sinon:

然后,我们将编写一些测试用例:

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

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

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

第一个测试用例测试 add 函数是否正确计算两个数字的和,如果计算结果不正确,测试用例将失败。第二个测试用例测试 add 函数是否正确调用了 console.log 函数,如果未被正确调用,测试用例将同样失败。

具体而言,第二个测试用例中我们通过 sinon.spy 方法来验证 add 函数是否正确显示了求和结果,然后通过恢复(console.log)后进行 afterEach() 的function判断调用方法的次数。如果调用次数为 1,那么测试用例将成功,否则将失败。最后,我们需要调用 logSpy 的 restore 方法来恢复 console.log 函数的原始行为。

运行测试

最后,我们运行测试用例来验证我们的代码是否正确:

如果一切正确,你应该会看到如下输出结果:

这表明,所有的测试用例都成功了,我们的代码可以正常工作。

总结

在本文中,我们学习了如何在 Jest 中使用 Sinon 模拟函数行为,捕获函数的调用等等。通过这些技术,我们可以写出更可靠、更健壮的测试用例,从而确保代码的正确性。如果你还没有尝试过 Jest 和 Sinon,那么现在就应该开始学习它们了!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ed67adf6b2d6eab3791def

纠错
反馈