npm 包 jshamcrest 使用教程

1. 什么是 jshamcrest?

jshamcrest 是基于 Java 中 Hamcrest 所开发的一个 JavaScript 测试工具库。Hamcrest 是一种类似伪代码的东西,它可以帮助你构建能够自然地表达你测试期望值的测试用例。它包含了一系列“matcher”(匹配器),可以轻松地进行断言测试,通过使用这些 matcher,我们可以在测试代码中表现得像自然语言一样,使得代码更加易于理解。

jshamcrest 是基于这个概念,为 JavaScript 开发者提供了一套很好用的“matcher”集合。

2. 如何使用 jshamcrest?

在使用 jshamcrest 之前,你需要先安装它,可以通过 npm 的命令来安装:

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

然后在你需要的测试文件中引入 jshamcrest:

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

现在你就可以在测试文件中使用 jshamcrest 提供的 matcher 来判断测试期望值是否符合你预期的值了。

3. jshamcrest 的 matcher 集合

jshamcrest 提供了一系列不同的 matcher,这些 matcher 可用于比较布尔值、数字、数组、字符串和对象等。下面我会列举一部分 matcher 的使用方法,更多 matcher 的详细介绍请到官网查看。

3.1 布尔值比较 matcher

Matcher 描述
equalTo(false) 判断实际值是否等于 false
equalTo(true) 判断实际值是否等于 true

示例代码:

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

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

3.2 数字比较 matcher

Matcher 描述
greaterThan(n) 判断实际值是否大于 n
greaterThanOrEqualTo(n) 判断实际值是否大于等于 n
lessThan(n) 判断实际值是否小于 n
lessThanOrEqualTo(n) 判断实际值是否小于等于 n

示例代码:

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

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

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

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

3.3 数组比较 matcher

Matcher 描述
hasItemInArray(item) 判断实际数组中是否包含 item
hasItemsInArray(item1, item2, ...) 判断实际数组中是否包含 item1, item2...
containsInAnyOrder(item1, item2, ...) 判断实际数组是否包含在任意顺序中的 items 数组

示例代码:

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

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

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

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

3.4 对象比较 matcher

Matcher 描述
equalToObject(object) 判断实际对象是否等于 object
hasProperty(propertyName) 判断实际对象中是否包含 propertyName 属性
hasProperties(properties) 判断实际对象是否包含 properties 中的所有属性

示例代码:

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

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

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

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

4. 总结:

在本文中,我们介绍了 jshamcrest 这个测试工具库,并且详细讲解了如何使用它。我们也了解了这个库提供的 matcher 集合,以及针对布尔值、数字、数组、字符串和对象等数据类型的 matcher 使用方法。

使用 jshamcrest 可以使得你的测试代码更加易于理解和维护,让你更加专注于测试场景的构建和测试数据的准备,从而提高测试效率。

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


猜你喜欢

  • npm 包 jsmockito 使用教程

    jsmockito 是一个 JavaScript 的模拟和测试库,和 Java 中的 mockito 类似。它被广泛应用于前端开发中的单元测试和集成测试中。在这篇文章中,我们将带你深入了解 jsmoc...

    5 年前
  • npm 包 appc-express-cdn 使用教程

    前置条件 在使用 appc-express-cdn 之前,需要首先安装 Node.js。如果已安装,请跳过此步骤。 安装 使用 npm 安装 appc-express-cdn: --- - -----...

    5 年前
  • npm 包 incrementify 使用教程

    前言 在前端开发中,经常需要对数据进行自增或自减操作,而 incrementify 是一款可以快速、方便地实现数据自增或自减的 npm 包。在本文中,我们将详细介绍 incrementify 的使用方...

    5 年前
  • npm 包 mt-ultraman 使用教程

    介绍 在前端开发过程中,有许多常用的组件需要反复开发,这时候使用一些好用的 npm 包可以提高开发效率。其中,mt-ultraman 是一个轻量级的移动端组件库,提供了常见移动端组件(如按钮、输入框、...

    5 年前
  • npm 包 node-combo 使用教程

    在前端开发中,我们经常需要使用多个 CSS 或 JavaScript 文件,但是这样会增加页面加载的时间和请求次数。为此,我们需要使用代码压缩和合并工具,将多个文件合并成一个文件,并且压缩文件大小,以...

    5 年前
  • npm 包 mocha-qa 使用教程

    介绍 Mocha-qa 是一个基于 Mocha 测试框架的 Node.js 专用库,它能够提供各种方便的测试驱动开发工具。它允许用户通过测试运行程序测试其功能、性能等,并生成相应的日志和错误报告。

    5 年前
  • npm 包 store.pouchdb 使用教程

    背景 我们的网站和应用程序通常都需要使用到数据存储。在前端领域,通常会使用本地存储或远程服务器存储两种方式。 本地存储通常包括浏览器自带的 localStorage 或 sessionStorage,...

    5 年前
  • npm 包 ember-cli-pace 使用教程

    在前端开发过程中,如何美化网站的加载过程是一个很重要的问题。一种解决方案是使用进度条来提示页面正在加载,这不仅可以提高用户的体验,还可以让页面更具交互性。而 ember-cli-pace 就是一个非常...

    5 年前
  • npm 包 dmn 使用教程

    在前端开发领域,npm是一个非常常用的工具,它可以帮助我们管理第三方包,快速搭建项目架构等等。而dmn则是一个比较火热的npm包,它可以让我们在前端领域更加轻松地使用决策表技术,提高开发效率。

    5 年前
  • npm 包 remapify 使用教程

    在前端开发中,我们经常使用模块化的方式来管理和组织代码,在浏览器端我们通常会使用 RequireJS 或者是 SeaJS 等模块化加载器。而在 Node.js 端,我们则可以使用 CommonJS 规...

    5 年前
  • npm 包 robin-js-sdk 使用教程

    robin-js-sdk 是一个适用于 Web 前端的 JavaScript SDK,提供了一系列 API 让开发者可以通过 JavaScript 调用 Robin 数据库中的数据。

    5 年前
  • npm 包 jdy 使用教程

    前言 npm 包管理器是前端开发中不可或缺的一部分,它极大地方便了项目的依赖管理和升级。在 npm 库中,有很多功能强大的包可以使用,其中就包括 jdy。jdy 是一个用于处理数据的 JavaScri...

    5 年前
  • npm 包 lasso-minify-js 使用教程

    在前端开发中,为了提高网站程序的性能,我们经常需要对代码进行压缩和优化,以减少文件大小并提高加载速度。此时,我们可以使用一些工具来将我们的代码压缩和优化,其中一个非常流行的工具就是 lasso-min...

    5 年前
  • npm 包 swint-builder-css 使用教程

    介绍 swint-builder-css 是一个 npm 包,它是用于处理 CSS 的构建工具。它支持 Sass 和 Less 预处理器,并能够处理 Autoprefixer 和 CSSnano。

    5 年前
  • npm 包 akamai 使用教程

    介绍 akamai 是一种针对前端开发者的工具包,它提供了一系列的命令行工具,可以帮助前端开发者更加容易地管理 CDN,从而提高网站的性能和速度。在本文中,我们将介绍如何使用 npm 包 akamai...

    5 年前
  • npm 包 swint-akamai-purge 使用教程

    在前端开发中,常常会使用到 CDN 来加速静态资源的访问速度。使用 CDN 带来了很多优点,但也带来了一些问题。比如,当静态资源发生更新时,需要将更新的资源通知 CDN,才能让用户重新获取最新更新的资...

    5 年前
  • npm包swint-builder-html使用教程及指导

    简介 Swint-Builder-HTML 是一个用来快速构建 HTML 页面的工具,可以很方便地将多个 HTML 碎片打包成一个完整的 HTML 页面,同时还可以进行 HTML 压缩、合并 CSS ...

    5 年前
  • npm 包 swint-builder-polymer 使用教程

    简介 swint-builder-polymer 是一个能够帮助我们快速构建 Polymer 项目的 npm 包,它提供了一系列需要的构建和工作流程工具,可以使我们更加方便和高效地开发和维护 Poly...

    5 年前
  • npm 包 swint-builder-png 使用教程

    前言 随着移动端的普及,PNG 图片已经成为了互联网上常用的图片格式之一。然而,PNG 图片相对于其它格式的图片,例如 JPEG、WebP、SVG,体积较大,下载速度较慢。

    5 年前
  • npm 包 swint-pipe 使用教程

    swint-pipe 是一个非常优秀的 npm 包,它可以让你在前端项目中更加高效地组织和管理代码。本文将详细介绍 swint-pipe 的使用方法,包括安装、配置以及示例代码等方面。

    5 年前

相关推荐

    暂无文章