如何在 Jest 测试中使用 Sinon.js

· 约 5 分钟读完

背景

在前端开发中,测试是非常重要且必不可少的一部分。在进行单元测试时,我们经常需要模拟函数的行为或者进行 stub。这时候,Sinon.js 便成为了我们的好帮手。

Sinon.js 是一个用于测试 JavaScript 代码的工具库,提供了诸如创建 spy、stub、mock 等函数的方法。Jest 是现代化的 JavaScript 测试框架,它提供了多种方式来进行测试,并且易于配置和使用。

本篇文章将介绍如何在 Jest 测试中使用 Sinon.js,希望对前端开发人员能有所帮助。

安装和引入 Sinon.js

使用 Sinon.js 前,我们需要安装它。可以通过 npm 或 yarn 安装:

安装之后,我们需要在测试文件中引入 Sinon.js:

创建 spy

通过 Sinon.js,我们可以使用 spy 来监测函数的调用情况。具体来说,spy 是一个函数,它可以在各种场景下捕获函数的调用(包括传入的参数)。

在 Jest 中创建 spy 能够让我们更好地了解函数的行为以及测试的覆盖率。

创建一个 spy 很简单,只需使用 sinon.spy() 即可:

sinon.spy() 还可以接收一个已有的函数,以监控该函数的调用情况:

创建 stub

stub 允许我们在测试中模拟函数的行为以及返回值。比如,我们可以通过一个 stub 来模拟后端 API 的调用。

在 Jest 中,我们可以使用 Sinon.js 的 sinon.stub() 函数来创建 stub。它可以接收一个已有的函数或者是一个空函数:

我们可以通过设置 stub 的返回值,来模拟函数的行为:

使用 Sinon.js 的特殊断言

除了 spy 和 stub,Sinon.js 还有其他一些有用的功能。例如,Sinon.js 的特殊断言能够帮助我们更好地验证我们的测试用例。

下面是一些使用 Sinon.js 断言的例子:

示例代码

下面是一个使用 Jest 和 Sinon.js 的示例测试用例:

结语

本文介绍了如何在 Jest 测试中使用 Sinon.js,并且通过一些示例代码演示了该如何创建 spy 和 stub。我们还讨论了 Sinon.js 的特殊断言,以及如何使用它们来验证我们的测试用例。

希望这篇文章能够对前端开发人员有所帮助,让大家能够更好地用测试来提高代码质量和可维护性。

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