使用 Jest 测试 JavaScript 中的函数调用

阅读时长 4 分钟读完

使用 Jest 测试 JavaScript 中的函数调用

在前端开发中,我们经常需要测试我们编写的功能。随着 JavaScript 项目的复杂程度不断提高,测试已经变得越来越重要。在这里,我们将介绍 Jest,一个用于 JavaScript 的测试框架,它一个简单却功能强大的测试工具。我们将学习如何使用 Jest 来测试 JavaScript 中的函数调用。

安装 Jest

首先,我们需要安装 Jest。我们可以使用 npm 安装 Jest。在终端中运行以下命令:

编写测试

在开始编写测试之前,我们需要了解一个概念:‘单元测试’。单元测试是对程序中最小可测试单元的测试工作,一般是对某个函数进行测试。单元测试的目的是发现已经存在的错误和规避潜在错误。在 Jest 中,每个测试都是一个函数。它们由 ittest函数来定义。例如:

Jest 提供了很多函数来验证定义的函数,例如,我们使用 expecttoBe 函数进行验证。在上面的例子中,我们测试了 sum 函数,确保它正确地返回了 3。

在 Jest 中,你可以为每个模块编写多个测试用例。

使用 Mock

Mock 是一个模拟对象的工具,通常使用它来代替一个真实的对象,以便使用测试中定义的数据和函数。Mock 可以用于代替异步调用和依赖外部库的函数。这是一个需要 mock 的示例函数:

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

在这个函数中,我们使用 setTimeout 函数来模拟异步调用并将结果传递给回调。

在测试中,我们希望立即获得结果,而不用等待 1 秒钟。下面是我们如何使用 Jest 的 jest.fn() 函数来创建 Mock。

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

在这里,我们首先使用 jest.fn() 函数创建 mockCallback 函数。然后我们调用 getUser 函数,并将 mockCallback 作为参数传入。在 expect 语句中,我们可以检查 Mock 函数的调用次数和传递给它的参数。

其他 Jest 函数

Jest 还提供了很多其他有用的函数,例如:

  • .toEqual()函数用于检查对象是否相等
  • .not.函数用于取反测试结果
  • .toThrow()函数用于检查是否抛出了异常
  • .toBeGreaterThan().toBeLessThan() 函数用于检查数字大小
  • .toContain() 函数用于检查字符串或数组是否包含某个元素

总结

Jest 是一个强大的 JavaScript 测试框架,它可以用于测试函数调用、异步调用、mock 函数等。通过单元测试,我们可以更好地理解并发现我们的代码中的错误。Jest 还提供了非常多的工具和函数,可以使我们的测试工作更加高效。在使用 Jest 时,我们应该着重关注代码的质量和测试代码的易读性,以便在提高代码质量的同时,减少我们的测试代码所需的复杂度。

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

纠错
反馈