npm 包 @morgs32/jest-image-snapshot 使用教程

前言

在前端开发中,测试是非常重要的一环。其中,UI 自动化测试是保证前端页面 UI 一致性和正确性的重要手段之一。其中,视觉测试是 UI 自动化测试的重要维度之一,可以用来保证前端页面的表现与设计保持一致。本文将介绍使用 npm 包 @morgs32/jest-image-snapshot 来进行 Jest 的视觉测试,以便更全面地保证前端代码的质量。

什么是 Jest

Jest 是一个由 Facebook 开源的 JavaScript 测试库,用来编写自动化的测试套件,在前端领域非常流行,可以用来测试 React、Vue、Angular 等前端框架。

什么是 @morgs32/jest-image-snapshot

@morgs32/jest-image-snapshot 是 Jest 的插件之一,它可以用来进行 Jest 的“视觉测试”操作。与传统的 UI 自动化测试不同,视觉测试更多的是关注页面的 UI 表现与设计的一致性和正确性,使前端页面在不同环境和设备下表现一致性和正确性。

安装 @morgs32/jest-image-snapshot

首先,需要您的项目中已经安装了 Jest。如果您的项目中还没有安装过 Jest,请先进行 Jest 的安装。

然后,使用下面的 npm 命令来安装 @morgs32/jest-image-snapshot:

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

使用 @morgs32/jest-image-snapshot 进行 Jest 的视觉测试

第一步:配置 jest.config.js

首先,需要在 jest.config.js 中配置 jest 的测试文件的输出目录和测试环境。在本文的示例中,我们将 Jest 的测试文件输出目录设置为 __tests__/__image_snapshots__ 目录,测试环境设置为 jsdom

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

第二步:编写测试用例 test.js

我们将在测试用例 test.js 中进行 Jest 的视觉测试操作,需要引入 React、ReactDOM、shallow 和 mount。

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

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

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

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

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

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

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

需要注意的是,在测试用例中,我们使用 Jest 提供的 toMatchSnapshot 方法来生成一个快照,来记录页面的当前 UI 和样式,并和基准快照进行对比。如果它们不一致,测试将失败。

第三步:执行 Jest 的测试

在执行 Jest 的测试前,需要先启动 React 项目。在启动 React 项目的命令前,需要在启动命令前添加:

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

这个命令将更新 Jest 的快照文件。

然后,使用下面的 npm 命令来运行 Jest 的测试:

--- --- ----

如果一切顺利,您将会看到 Jest 的测试结果。

示例代码

完整的示例代码可以查看我的github:https://github.com/wanqizhu9/JEST_UI_Testing/blob/master/tests/test.js

总结

在前端开发中,视觉测试是非常重要的一环。 @morgs32/jest-image-snapshot 插件为 Jest 提供了视觉测试的支持,可以和 Jest 的自动化测试结合使用,更全面地保证前端代码的质量。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005757a81e8991b448ea5d7


猜你喜欢

  • npm 包 @teamroboboogie/tabtab-commander 使用教程

    介绍 @teamroboboogie/tabtab-commander 是一款 Node.js 的 CLI 工具,可用于创建命令行界面(CLI)的交互式自动补全功能。

    3 年前
  • npm 包 coin-ticker 使用教程

    随着加密货币市场的迅猛发展,越来越多的人开始关注加密货币的价格走势。Coin-ticker 是一个方便易用的 npm 包,通过它我们可以轻松获取多个加密货币的实时价格。

    3 年前
  • npm 包 hgraph 使用教程

    在前端开发中,我们常常需要使用各种第三方库来提高开发效率和质量。其中,npm 是一个非常流行的第三方包管理器,它为开发者提供了成千上万的可重用的模块和库。而 hgraph 这个 npm 包就是一个非常...

    3 年前
  • npm 包 tiny-grid 使用教程

    在前端开发中,响应式布局已经成为一种标配,而 tiny-grid 是一个 npm 包,可以帮助我们快速地搭建出简洁、易用、响应式的网格布局。在本文中,我们将详细介绍 tiny-grid 的使用方法,以...

    3 年前
  • npm 包 vue2-iscroll 使用教程

    前言 随着移动端设备的普及,移动端应用已经成为了日常生活中不可缺少的一部分。而在移动端应用中,滚动功能是十分常见且重要的。而 iScroll 是一款非常出色、易用并且兼容性极佳的滚动插件,它为用户提供...

    3 年前
  • npm 包 @hasaki-ui/hsk-alistar 使用教程

    简介 @hasaki-ui/hsk-alistar 是一个 React 组件库,以及配套的样式库,提供了一些简单实用的组件,可帮助您快速创建 React 应用程序。

    3 年前
  • npm 包 flagwind-echarts 使用教程

    介绍 flagwind-echarts 是一个基于 echarts 的数据可视化解决方案,它提供了一些常用的图表组件,可以帮助前端开发者快速创建数据可视化的应用。 flagwind-echarts 的...

    3 年前
  • npm 包 `vue-touch-feedback-plugin` 使用教程

    前言 前端开发涉及到的技术日新月异,我们应该及时了解和学习新的技术和工具。本文将介绍一款名为 vue-touch-feedback-plugin 的 npm 包,在移动端开发中为用户提供更良好的操作反...

    3 年前
  • npm 包 @thinman/koa-joi-router 使用教程

    在前端开发中,使用 npm 包可以提高开发效率和代码质量,因为它们提供可重用和可维护的 JavaScript 模块。在本文中,我们将介绍使用一个 npm 包 @thinman/koa-joi-rout...

    3 年前
  • npm 包 @rxcc/debug 使用教程

    前言 在前端开发中,调试是一个不可避免的环节。我们常常使用 console.log() 来进行调试,但是在大型的项目中,使用 console.log() 很容易出现问题,因为此时可能会有很多输出,甚至...

    3 年前
  • npm 包 hyperapp-webpack-hmr 使用教程

    前言 hyperapp 是一个轻量级的前端框架,适用于构建单页应用程序。然而在实际开发中,我们通常需要将我们的程序构建成可发布的静态文件,这时候就需要使用到 webpack。

    3 年前
  • npm 包 icpi-algorithm 使用教程

    前端开发离不开算法,它可以帮助我们更好地完成一些复杂的任务,提高代码的效率和质量。而 npm 包 icpi-algorithm 就是一个专门为前端开发人员提供的算法工具包,它包含了很多常用的算法,如排...

    3 年前
  • npm 包 ideatica-unzip 使用教程

    在前端开发的过程中,我们常常需要对压缩文件进行操作。npm 包 ideatica-unzip 是一个轻量级的 Node.js 模块,它可以帮助我们轻松地将 ZIP 文件解压到指定目录中。

    3 年前
  • npm 包 openui5-camera 使用教程

    前言 在前端开发中,我们经常需要让用户上传图片或者使用摄像头拍照。而在移动应用开发中,直接调用原生摄像头 API 可能有一定风险,并且不同平台的API有所不同。openui5-camera 这个 np...

    3 年前
  • npm 包 @rxcc/helpers 使用教程

    在日常的前端开发中,我们经常需要完成一些重复性的工作,例如字符串操作、数据格式化等等。这些操作可以使用一些工具函数来简化我们的编码过程。npm 包 @rxcc/helpers 就是为了解决这些问题而存...

    3 年前
  • npm 包 react-simple-progress 使用教程

    前端开发中,大多数产品都需要加载进度条来提高用户体验。而 react-simple-progress 就是一款简单易用的进度条组件。它提供了多种进度条样式,可以轻松自定义进度条的颜色、宽度、高度等属性...

    3 年前
  • npm 包 @vectorspace/babel-preset 使用教程

    在前端开发中,Babel 是一款非常常用的 JavaScript 转码器,可以将 ECMAScript 6 代码转换为浏览器可以执行的 JS 代码。但是,在使用 Babel 进行代码转换时,我们需要配...

    3 年前
  • npm 包 @vectorspace/eslint-config 使用教程

    在前端开发中,代码风格一直是大家非常关注的问题。ESLint 是一个被广泛应用和使用的 JavaScript 代码检查工具,它能够帮助我们避免 JavaScript 代码中的基本语法错误,加强代码风格...

    3 年前
  • npm 包 @vectorspace/jest-preset 使用教程

    在前端开发中,自动化测试是非常重要的一环。而 Jest 是一个开源的 JavaScript 测试框架,它可以帮助我们轻松地编写测试用例,并且提供了简单易用的命令行工具。

    3 年前
  • npm包 detect-content-type 使用教程

    在前端开发中,经常需要处理各种类型的文件,其中一项基础工作就是确定一个文件的内容类型(MIME type),从而正确地处理这个文件。npm包 detect-content-type 就提供了这样的功能...

    3 年前

相关推荐

    暂无文章