Jest 框架

2025年4月5日 | 阅读10分钟
Jest Framework

什么是 Jest 框架?

Jest 是一个主要用于测试JavaScript开源框架。Jest 主要用于配合 React Native 风格的 Web 应用和 React 使用,并且它在进行任何单元测试时都主要关注简洁性。单元测试通常在软件的前端运行时并不十分有用,因为它耗时且复杂。但使用 Jest 框架可以轻松解决这个问题。此外,Jest 框架还可以帮助程序员验证使用 JavaScript 开发的所有内容,无论是 Web 应用的浏览器渲染还是任何移动应用。

对于自动浏览器测试,Jest 起着非常重要的作用。与现有的其他框架相比,Jest 是目前最著名的 JavaScript 测试框架之一。此外,Jest 还提供了一个集成了模拟库断言库测试运行器的综合包。它以其简洁性而闻名,使其成为测试和构建各种 JavaScript 库项目(如Angular JS、Node JS、Vue JS、BabelTypescript)的独特工具。

Jest 是一个 JavaScript 测试框架,主要旨在确保 JavaScript 代码库的精确性和准确性。它通过提供一个易于理解、熟悉且功能丰富的 API(应用程序可编程接口)来帮助我们编写测试,该 API 将为我们用它编写的代码快速提供结果。

它是一个定义完善的文档,只需要很少的配置,并且可以根据需要进行扩展以满足您的需求。Jest 让测试变得愉快。

Jest 是测试 React 组件最受欢迎的框架之一。最初,它是由 Facebook 创建的,专门用于测试 React 应用程序。它通过在一个框架中包含所有必需的东西,从而使运行 JavaScript 测试更加轻松快捷。它主要旨在开箱即用,无需配置,并且适用于大多数 JavaScript 项目。

它非常快速且安全;Jest 可以并行运行所有测试,确保它们具有唯一的全局状态。为了使事情更快更容易,它会优先运行之前失败的测试,然后根据长测试文件重新组织后续测试的运行。

Jest 为程序员提供了一个集中的强大工具集,该工具集文档齐全、维护良好且组织有序。它还通过在独立进程中运行测试来并行管理测试,从而帮助最大化性能水平。Jest 还维护信息覆盖记录,并从整个项目和各种未测试的文件中收集代码覆盖率信息。

Jest 框架的工具已获得广泛认可,这种认可导致 Jest 被用于 JavaScript 后端和前端应用程序。包括Twitter、Pinterest、Instagram等在内的众多大型公司主要使用 Jest 进行 React 测试。

Jest 本身不是一个库,它是一个 JavaScript框架,并且不像一些竞争对手那样依赖第三方工具来实现大部分功能。任何人都可以使用 Jest,并且由于其零配置设置,它是一个无忧无虑的部分。您可以轻松安装它,然后从一开始就可以编写您的第一个测试。

借助各种模拟函数 API(应用程序可编程接口),我们可以使用模拟导入来观察各种函数调用,并使用易于阅读的文本语法。

Jest 在单元测试方面非常受欢迎,并且可以轻松扩展以包含各种集成测试。在不同单元测试的尺度上,自动化测试与端到端测试截然相反。有大量的软件测试可以验证移动或 Web 应用程序的各个方面,每个测试都在不同的层次或层上运行并提供其独特的反馈类型。

单元测试通常被认为是各种自动化软件测试中最重要的一种。单元测试主要用于通过将应用程序分解成小的、完全独立的单元来验证应用程序。此外,单元测试确保提供比预期更多的工作。

因此,单元测试通常是——

  • 执行任何测试或基于应用程序的项目都非常快速。
  • 它的设置或多或少都很容易,不需要复杂的配置。
  • 它在提供与项目或用户开发的任何 Web 和移动应用程序相关的任何反馈方面都非常准确。

因此,单元测试的现实性或想象力较低,因为用户通常不会在完全隔离的单元下进行交互。

Jest 框架的功能

  1. 易于设置 - Jest 框架安装在任何系统上都非常简单。您可以使用名为 npm(Node 包管理器)或 yarn 的库直接安装它。我们可以使用 npm 命令行的“ -g ”标志全局安装 jest 模块。无需为各种 npm 测试设置包文件,就可以直接使用“ -g ”标志使用 jest 命令。使用 jest 框架非常简单;如果您想使用 React-create app 来创建您的 React 项目,我们建议您不需要这样做。jest 包包含多个模块,您可以在其中立即开始编写测试。
  2. 性能和速度 - Jest 框架非常快速。它可以快速、高效地执行所有测试用例,而不会出现任何延迟,前提是您的系统性能也很好。如果您的测试是 CPU 密集型的,Jest 可以为您的测试运行节省大量时间。有几个因素使得 Jest 工作快速而有效——
    • 优先运行耗时较长的测试;由于这个因素,所有核心都得到了最大的利用。
    • 并行化,由于这个因素,所有测试都可以同时针对多个配置执行。并行测试是半自动化测试,可以同时针对多个配置执行所有测试。
    • 它捕获 babel 转换;这里,babel 是一个开源免费的 JavaScript 编译器。
  3. 所有测试的独立运行 - 每个 jest 测试都在其自己的沙箱中运行,这确保了没有两个测试会干扰另一个测试的运行,或者不会影响另一个测试的执行。然而,我们知道所有测试都在系统并行执行。但是,隔离的基本思想是提供每个测试的环境,使其考虑一次运行一个,以便它可以干扰其他测试的运行。通过这个属性,jest 框架运行得更快。
  4. 强大的模拟支持 - 在学习此功能之前,我们需要了解模拟到底是什么。模拟是一种将我们的各种测试对象分离的技术;这种分离是通过用可检查和控制的对象替换依赖项来实现的。当我们谈论 Jest 中的模拟时,我们通常讨论用模拟函数替换依赖项。Jest 支持所有类型的模拟;它可以遵循以下方式:计时器模拟、函数模拟或模拟单个 API(应用程序可编程接口)调用。
  5. Jest 支持 TypeScript - Jest 支持 TypeScript。我们可以使用 ts-jest 包来实现它;正如我们所知,TypeScript 用于开发服务器端执行和客户端执行的 JavaScript 应用程序。TypeScript 使用纯 JavaScript,这是最有利的功能,它是 JavaScript 的一个非常流行的超集。ts-jest 包充当 TypeScript 预处理器,并支持 Jest 的源映射,它还拥有一个非常敏捷的社区。
  6. 支持快照测试 - 快照测试有很大的用途;它允许您捕获代表您给定或提供的组件的字符串,并将其存储在文件中。快照测试非常适合 React Native 和 React 应用程序,并且可以使用快照来比较各种其他框架的顺序值。通过捕获 React 组件的快照,可以极大地帮助验证组件的行为。如果您想更改 UI(用户界面),则需要更新您的快照文件。

从 Jest 框架的所有上述功能和优点,我们可以得出结论,Jest 是一个非常快速的测试框架,对我们来说非常方便且易于在我们的系统上安装和设置 Jest。它由 Facebook 开发,并被 Facebook 和许多其他用户积极用于测试所有 React 应用程序和基于 React 的项目。它拥有方便且常用的包,并支持 TypeScript。

执行任何测试的基本设置

每当我们创建一个 Web 或移动应用程序时,都必须测试该应用程序的每个功能和元素以及它与用户的交互点,这几乎是强制性的。Web 应用程序由各种模块和函数组成,主要称为代码单元,这些代码单元也需要进行测试。

在这种情况下通常会出现两种情况

  • 继承遗留代码,这里的遗留代码指的是较早的计算机源代码或传统代码(基代码),这些代码已经预先定义好用于特定测试,并且没有附带测试,因为这些代码已经经过测试,不需要进一步测试。
  • 突然以意想不到的方式实现新功能。

对于上述两种情况,都必须检查给定的函数是否产生所需的输出。

对于每个测试,都有一个预定义的流程,通过逐步遵循该流程,我们的代码在经过整个流程后得到充分测试。

  1. 首先,导入特定测试所需的函数。
  2. 将必要的输入传递给选定的函数。
  3. 定义函数的体,使其在函数执行后必须产生所需的输出。
  4. 最后检查函数的工作,看它是否产生所需的输出。

Jest 安装过程

在使用 Jest 编写第一个测试脚本之前,有一些先决条件和 Jest 框架的安装过程是必要的。此类测试脚本也可以是Selenium 测试自动化脚本。

因此,要运行我们的 Jest 测试脚本,我们需要安装一些重要的库和包,这些库和包是预先定义的,用于检查特定的测试脚本。

  • Node 包管理器 (npm) 和 NodeJS:可以通过 Node.js 官方网站上的 Windows 安装程序二进制文件直接安装 NodeJS,或者通过 npm 管理器安装;Node 包管理器是一个开源软件库,拥有超过 80 万个代码包。Node 包管理器通常是一个命令行工具,用于在我们的 Web 或移动应用程序中更新、安装或卸载各种 Node.js 包。
    如果您想初始化 npm 命令,请导航到 npm 命令行工具并安装最新版本,您可以轻松地应用如下命令。
  • Selenium Web Driver:它是一个 Web 框架,允许您运行或实现跨浏览器测试。它还允许您选择任何适合您的编程语言来创建各种测试脚本。对于自动化移动或任何基于 Web 的应用程序测试,Selenium Web Driver 用于验证应用程序是否按预期执行。Jest 模块安装在根目录中。Selenium Web Driver 是 Jest 模块的依赖项。
    使用下面的命令行,您可以下载最新版本的 Selenium WebDriver。

使用下面的命令行,您可以使用 npm 安装 jest 模块。

使用 Java - SDK jest 关键字,测试人员将在命令行中运行命令。在进一步进行 jest 框架安装过程之前,您必须检查您的系统是否已经完成了 Java Development Kit 的安装过程,并配置了 JAVA 环境;这是因为 Jest 是一个 Selenium 测试框架,而 Selenium 本身是建立在 Java 上的。

您可以使用“-g”标志全局安装 jest 模块,也可以将“-g”标志与 npm 命令一起使用。

要直接使用各种 Jest 命令而不设置 npm 测试的包文件,您可以轻松地通过使用“-g”标志来实现。

让我们通过下面的示例来更多地了解 jest 框架-

使用 package.json 的 Jest 示例

如果您想了解有关测试运行的更多信息,请使用 -verbose 标志,因为 Jest 默认只产生基本输出。

如果您想在特定序列中运行或执行一对一的单个测试,那么您可以使用npx jest 测试名称命令。

scripts

因此,测试人员可以设置 Jest 来运行特定测试目录的各种测试。

在执行任何测试或程序之前,您需要遵循一些程序步骤

  1. 首先,你们都需要运行代码
  2. 评估您之前编写的代码。
  3. 最后,开始应用这些代码,包括一些变体,以创建任何 Web 或移动应用程序,或者您可以创建不同的网站。