npm 包 jest-multiline-matchers 使用教程

介绍

在前端开发中,测试是非常必要的一个环节。而 jest 是一个流行的 JavaScript 测试框架,它提供了广泛的测试能力,可以让开发者轻松地编写和运行测试用例。不过,jest 默认的匹配器在处理多行字符串时很难根据预期内容精确匹配,这就导致了一些测试用例无法正确通过。为了解决这个问题,开发者可以使用 jest-multiline-matchers 包提供的自定义匹配器。

安装

使用 npm 安装 jest-multiline-matchers:

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

使用

在使用 jest-multiline-matchers 之前,需要向 jest 注册这些自定义匹配器。在你的测试用例文件中,将以下代码添加到顶部即可:

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

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

现在,就可以使用 toMatchMultiLineSnapshot 匹配器来比较多行字符串了。例如:

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

在运行测试后,jest 会自动生成一个标准格式的快照文件,以便您随时回归和比较。举个例子,如果一个名为 myTest 的测试用例通过 expect 输出多行字符串:

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

则 jest 会自动生成一个与测试中 expect 输出的 message 字符串匹配的快照文件,内容如下:

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

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

如果在之后的测试中,变量 message 的值与初始值不同,toMacthSnapshot 方法会用新值覆盖且更新快照文件。

但是,这种方法无法适应多行字符串的情况。例如,在一个名为 multilineTest 的测试用例中:

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

jest 将无法正确生成快照文件。这时,就需要使用 jest-multiline-matchers 提供的 toMatchMultiLineSnapshot 方法。

在顶部导入 toMatchMultiLineSnapshot 方法,并将其添加到 expect 的 extend 中:

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

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

然后,使用 toMatchMultiLineSnapshot 方法进行对比。对于以上列举的多行字符串情形:

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

jest 会自动生成一个与测试中 expect 输出的 message 字符串匹配的快照文件,内容如下:

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

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

toMacthMultiLineSnapshot 方法会自动去除多行字符串开头及结尾的空格和空行,生成标准的快照文件。

总结

使用 jest-multiline-matchers 提供的 toMatchMultiLineSnapshot 方法,可以轻松地在多行字符串的测试中快速生成想要的快照文件。它可以广泛地应用于模板字符串、JSON、XML 等复杂的多行字符串中,大大提高了 jest 编写测试用例的效率。

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


猜你喜欢

  • npm 包 gutt-static-site-generator 使用教程

    随着互联网的普及和发展,Web 技术日益成为人们关注和研究的热点话题。其中前端技术作为 Web 技术的入口和基础,受到了越来越多的关注和重视。在前端开发中,将网站静态化是一个常见的需求,这时候我们需要...

    3 年前
  • npm 包 react-native-browser-modal 使用教程

    本文介绍的是一个针对 React Native 的 npm 包 react-native-browser-modal 的使用教程。如果你想在 React Native 项目中集成浏览器,那么这篇文章...

    3 年前
  • npm 包 steam-provider 使用教程

    Steam 是一个著名的游戏平台,而 steam-provider 就是一个可以方便地使用 Steam Web API 的 npm 包。本文将介绍如何安装和使用 steam-provider。

    3 年前
  • npm 包 t-react-date-picker 使用教程

    引言 在前端开发中,我们常常需要实现日期选择器功能。t-react-date-picker 是一个基于 React 框架的日期选择器组件,提供了丰富的属性和事件,减少了我们在日期选择器的开发过程中的麻...

    3 年前
  • npm 包 use-dashboard 使用教程

    什么是 npm 包 use-dashboard npm 包 use-dashboard 是一个用于构建仪表盘的 React Hook。该 Hook 可以轻松地创建一个用于监控数据的仪表盘,并轻松地自定...

    3 年前
  • npm 包 utilibelt 使用教程

    前言 随着互联网技术的快速发展,前端的技术越来越重要,许多前端开发人员会遇到一些常见且需要重复使用的问题和方法,比如时间格式转换、字符串处理等,这时候就需要一个工具库,许多工具库都可以满足这些需求,其...

    3 年前
  • npm 包 @deppi/reducer 使用教程

    在前端开发中,reducer 是一个常用的功能模块,用于处理状态管理。 @deppi/reducer 就是一个可重用的 reducer 库,提供了一系列方便易用的 reducer 函数。

    3 年前
  • NPM 包@heisian/cocoadialog 使用教程

    介绍 @heisian/cocoadialog 是一个用于在 Electron 应用程序中创建本地对话框和通知的 NPM 包。它是基于 CocoaDialog 应用程序创建的,并通过 Electron...

    3 年前
  • npm 包 `install-here` 使用教程

    简介 install-here 是一款辅助工具,它能够让你在项目根目录安装你需要的 npm 包,同时支持自定义安装路径和安装多个包。 安装 使用 npm 进行全局安装: --- ------- -- ...

    3 年前
  • npm 包 window-follow-redirects 使用教程

    在前端开发中,网络请求经常会遇到 HTTP 重定向的情况。重定向指的是服务器收到请求后,返回的 HTTP 状态码为 3xx,告诉浏览器需要从请求的 URL 跳转到另一个 URL 上去。

    3 年前
  • npm 包 cerebro-gitignore-builder 使用教程

    在前端开发中,Git 是一个必不可少的工具,它可以帮助我们进行版本控制和协同开发。而在 Git 中,.gitignore 文件也是一个非常重要的文件,它可以告诉 Git 哪些文件应该被忽略。

    3 年前
  • npm 包 google-big-query-labels 使用教程

    简介 gogle-big-query-labels 是一个 Node.js 的 npm 包,用于 BigQuery 数字化广告查询。本篇文章将详细介绍该 npm 包的使用方法和注意事项,并给出相应示例...

    3 年前
  • npm 包 Lepus 使用教程

    Lepus 是一个基于 React 和 Canvas 的库,用于创建交互式、可自定义的图形化元素,可用于创建特效、动画、小游戏和数据可视化等。下面将详细说明如何在您的项目中使用 Lepus。

    3 年前
  • npm 包 primo-explore-tns-css 使用教程

    简介 primo-explore-tns-css 是一个 npm 包,提供了一个基于 NativeScript 的图书馆搜索应用程序的样式。这个 npm 包是为了开发图书馆搜索应用程序的 Web 开发...

    3 年前
  • npm 包 @pwa/manifest-cli 使用教程

    简介 PWA(渐进式 Web 应用程序)是一种新型的 Web 应用程序模型,它提供了接近原生应用的用户体验,并可在多种设备、浏览器之间保持一致性。其中,Manifest 是 PWA 的重要组成部分,通...

    3 年前
  • NPM 包 @medium-rare/common 使用教程

    简介 @medium-rare/common 是一个 Node.js 模块,提供了一组常用的 JavaScript 工具函数。这些函数可以轻松地在 Node.js 和浏览器中使用。

    3 年前
  • npm 包 dhruvnodepack 使用教程

    随着前端应用的发展,npm 包管理工具的使用越来越广泛。其中 dhruvnodepack 就是一个非常优秀的 npm 包管理工具,提供了许多实用功能,如快速安装依赖、自动构建、打包等,大大简化了前端开...

    3 年前
  • npm 包 hwrld 使用教程

    什么是 npm 包 npm 是 Node.js 的包管理器,用于管理 Node.js 相关的模块。npm 包则是指在 npm 上发布的可以被其他项目引用的模块。 hwrld 简介 hwrld 是一个基...

    3 年前
  • npm 包 jsonlinter 使用教程

    在前端开发领域,JSON 数据格式是非常常见的一种数据格式,因其简单易用、跨语言支持及可读性强,所以被广泛使用。然而,如果你的 JSON 数据格式不正确,则无法被正确解析,导致前端页面显示不正常。

    3 年前
  • npm 包 vue-prerender-exclude-social 使用教程

    在 Vue.js 项目中,我们经常需要实现 SEO 优化。其中一个通用的方式是使用预渲染(Prerendering)技术,在服务器端生成应用首屏内容的 HTML,使得搜索引擎可以正确地抓取和索引页面。

    3 年前

相关推荐

    暂无文章