npm 包 jest-expect-contain-deep 使用教程

阅读时长 3 分钟读完

简介

在前端开发中,测试是不可或缺的部分。而 Jest 是一个非常流行的 JavaScript 测试框架。在 Jest 中,expect 是一种常用的断言语句,用于判断测试结果是否正确。然而,expect 只能判断简单的数据类型和结构,对于深层嵌套的对象或数组判断就会变得比较麻烦。因此,jest-expect-contain-deep 作为一个 npm 包应运而生,可用于更方便地进行深度判断。

安装

在使用 jest-expect-contain-deep 前,需要先在项目中安装该 npm 包,方法如下:

使用

安装完包之后,在测试文件中进行引用:

引入的 jest-expect-contain-deep 包可以使 expect 方法支持更多的断言方式。

判断深层对象

在判断两个对象是否相等时,常常需要考虑其内部是否包含相同的子元素。使用 jest-expect-contain-deep 包,可以轻松地判断相同键名对应值的子元素是否存在。

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

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

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

在上述代码中,objA 包含了 objB 中的所有键值对,所以他们是相等的。toContainEqualDeep 方法封装了比较过程,无需手动遍历子元素。

判断深层数组

与判断深层对象相似,判断数组内是否包含相同元素,也可使用 jest-expect-contain-deep 包。

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

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

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

上述代码中,arrB中包含的元素,也都被 arrA 包含,因此,他们是相等的。

总结

在开发过程中,使用 jest-expect-contain-deep 包,可以方便快捷地进行深层对象和数组的比较,提高开发效率。同时,减少了繁琐的手动遍历数组或对象中元素的过程,使判断更为简单明了。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6d3fe7a9b7065299ccb96f

纠错
反馈