npm 包 chai-roughly 使用教程

在前端开发中,测试是一个必不可少的环节。为了方便测试,我们通常会使用各种测试框架和断言库。而 chai-roughly 便是一个能够帮助我们进行粗略断言的 npm 包。

什么是 chai-roughly?

chai-roughly 是 chai 断言库的一个扩展,它允许我们进行近似值的比较。在实际开发中,我们通常无法精确地比较两个数(或者其他对象)的相等性,而 chai-roughly 提供了一种简单的方式来判断它们是否足够接近。

当判断两个数字是否相等时,通常会使用一个很小的容差值,而 chai-roughly 就是为了解决这个问题而产生的。它允许我们在比较数字时指定一个容差值,当两个数字的差值小于这个容差值时,我们就认为它们相等。同时,chai-roughly 还支持在比较对象时递归地比较每个属性的值。

安装 chai-roughly

使用 npm 安装 chai-roughly 十分简单:

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

安装完成后,就可以在测试代码中引入 chai 和 chai-roughly 了:

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

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

这样,在测试代码中就可以使用 chai-roughly 提供的各种粗略断言了。

使用 chai-roughly 进行数字比较

chai-roughly 提供了两种方法来进行近似数字比较:roughlyEqualroughlyEql。它们的用法与 chai 提供的相等比较方法类似。

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

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

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

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

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

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

以上代码中,roughlyEqualroughlyEql 的第二个参数都是容差值。当两个数字的差值小于这个容差值时,就认为它们相等。

使用 chai-roughly 进行对象比较

除了数字比较之外,chai-roughly 还提供了一种方法来进行对象的粗略比较:roughlyDeepEqual。它可以递归地比较对象的属性值是否近似相等。

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

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

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

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

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

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

在以上代码中,obj1obj2 的属性值不完全相等,但是它们的差值都小于 0.0001,因此使用 roughlyDeepEqual 可以认为它们近似相等。

总结

chai-roughly 是一个非常实用的 npm 包,在测试数值和对象时能够快速判断它们是否近似相等。通过本文的介绍,希望读者能够掌握 chai-roughly 的基本用法,并在实际开发中应用它来提高测试效率。

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


猜你喜欢

  • JavaScript Boolean toString() 方法

    在 JavaScript 中,Boolean 类型是一个代表逻辑值的数据类型,只有两个可能的值:true 和 false。Boolean 类型还有一个非常有用的方法,就是 toString() 方法。

    6 年前
  • npm包cssdom使用教程

    简介 CSSDOM是一种能够将CSS文本解析成DOM树的JavaScript库。该库可以让开发者更加方便地处理样式表,例如获取样式信息或修改样式信息等。 安装 使用npm命令进行安装: --- ---...

    6 年前
  • npm 包 utils-extend 使用教程

    简介 npm 是前端常用的包管理器,提供了各种常用的工具库和框架,可以大幅度提高前端开发效率。其中,utils-extend 是一个非常实用的 npm 包,可以快速扩展 JavaScript 原生对象...

    6 年前
  • npm 包 dynavers 使用教程

    在前端开发中,我们经常需要使用各种 npm 包来增强我们的项目功能。dynavers 就是一个非常实用的 npm 包,它可以帮助我们动态地创建和管理 npm 包版本。

    6 年前
  • Video pause() 方法

    在 Web 前端开发中,处理视频播放是一个常见的需求。HTML5 提供了 <video> 元素,通过 JavaScript 可以控制视频的播放、暂停、跳转等操作。

    6 年前
  • Video play() 方法

    在 web 前端开发中,视频播放是一个常见的需求。而在控制视频播放的过程中,play() 方法是一个非常重要的方法。本文将详细介绍play() 方法的用法,以及一些常见的场景和示例代码。

    6 年前
  • Video load() 方法

    在Web开发中,视频播放是一个非常常见的功能。而在前端开发中,我们经常需要控制视频的加载和播放过程。其中,load() 方法是一个非常重要的方法,用于加载视频资源并准备播放。

    6 年前
  • Video canPlayType() 方法

    在 web 前端开发中,视频播放是一个非常常见的功能。为了确保用户能够正常观看视频,我们需要在代码中检测浏览器是否支持特定的视频格式。而这时就可以使用 HTML5 的<video>元素的c...

    6 年前
  • Video addTextTrack() 方法

    在Web前端开发中,视频播放是一个非常常见的功能。而在视频播放过程中,有时候我们需要为视频添加一些字幕或者其他文本信息,以提供更好的用户体验。在这种情况下,我们就可以使用HTML5的addTextTr...

    6 年前
  • Video width 属性

    在网页开发中,嵌入视频是一种常见的需求。视频元素是 HTML5 中的一个重要标签,通过它我们可以方便地在网页中展示视频内容。在使用视频元素时,我们经常会遇到需要设置视频的宽度属性。

    6 年前
  • Video volume 属性

    在 Web 前端开发中,视频播放是非常常见的功能。而视频的音量控制是其中一个重要的功能之一。在 HTML5 中,我们可以通过<video>标签来实现视频播放,并通过volume属性来控制音...

    6 年前
  • Video videoTracks 属性

    在 Web 前端开发中,处理视频是一个常见的需求。HTML5 提供了 <video> 元素,可以用来嵌入视频到网页中。而在 JavaScript 中,我们可以通过视频元素的 videoTr...

    6 年前
  • Video textTracks 属性

    在 Web 前端开发中,视频播放是一个常见的需求。而对于视频播放的控制和交互,textTracks 属性是一个非常重要的属性之一。本文将详细介绍 textTracks 属性的用法和功能。

    6 年前
  • Video startDate 属性

    Video startDate 属性详解 在 Web 前端开发中,处理视频相关的功能是很常见的。其中,startDate 属性是一个比较特殊的属性,它可以用来指定视频的开始播放时间。

    6 年前
  • Video src 属性

    在 web 前端开发中,经常会涉及到视频的播放和展示。而要在网页中展示视频,就需要使用<video>标签。<video>标签可以通过src属性来指定视频文件的路径,从而实现视频...

    6 年前
  • Video seeking 属性

    Video Seeking 属性 在 web 前端开发中,视频播放是一个非常常见的需求。而其中一个非常重要的功能就是视频的 seeking,即用户可以通过拖拽进度条或者点击进度条上的某个位置来快速跳转...

    6 年前
  • Video seekable 属性

    在 web 前端开发中,视频播放是一个非常常见的功能。用户可以通过控制条或者其他方式来控制视频的播放进度,其中就涉及到了 seekable 属性。本文将详细介绍 seekable 属性的作用、用法以及...

    6 年前
  • Video readyState 属性

    在 Web 开发中,视频播放是一个非常常见的需求。在控制视频播放过程中,我们经常会用到 readyState 属性来获取视频的加载状态。本文将详细介绍 readyState 属性的用法和相关知识。

    6 年前
  • Video preload 属性

    Video Preload 属性 在网页开发中,视频元素是一种常见的多媒体元素。为了提高用户体验和页面加载速度,我们可以使用 preload 属性来控制视频的预加载行为。

    6 年前
  • Video poster 属性

    在 web 前端开发中,使用视频作为网页内容的一部分已经变得越来越普遍。视频可以帮助吸引用户的注意力,增强用户体验,传递信息等。在使用视频标签 <video> 来嵌入视频时,poster ...

    6 年前

相关推荐

    暂无文章