在 Jest 测试中使用 Jasmine Matchers 的技巧和技巧

在前端开发中,测试是不可或缺的一环。Jest 是一个流行的 JavaScript 测试框架,它提供了一系列强大的功能来帮助我们编写高质量的测试代码。其中一个重要的功能是 Jasmine Matchers,它可以让我们编写更简洁、易读和可维护的测试代码。本文将介绍在 Jest 测试中使用 Jasmine Matchers 的技巧和技巧。

Jasmine Matchers 简介

Jasmine Matchers 是一个用于增强 Jest 测试的库,它提供了一系列的匹配器(Matchers),可以让我们更方便地编写测试代码。比如,我们可以使用 toBe 匹配器来比较两个值是否相等:

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

Jasmine Matchers 还提供了很多其他的匹配器,比如 toEqual、toBeCloseTo、toContain、toThrow 等等。这些匹配器可以让我们编写更具表达力、更易读的测试代码。

使用 Matchers 来测试对象

在测试中,我们通常需要比较两个对象是否相等。在 Jest 中,我们可以使用 toEqual 匹配器来比较两个对象是否相等。但是,toEqual 匹配器并不是完全严格的相等比较。比如,它无法检查对象的类型是否相等。如果我们想要进行更严格的相等比较,可以使用 toStrictEqual 匹配器。例如:

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

上面的代码中,我们创建了两个对象 obj1 和 obj2,它们的属性顺序不同,但是内容相同。使用 toEqual 匹配器可以判断它们相等,但是使用 toStrictEqual 匹配器会判断它们不相等,因为它们的类型不同。

使用 Matchers 来测试数组

在测试中,我们经常需要比较两个数组是否相等。在 Jest 中,我们可以使用 toEqual 匹配器来比较两个数组是否相等。但是,toEqual 匹配器并不是完全严格的相等比较。比如,它无法检查数组的顺序是否相等。如果我们想要进行更严格的相等比较,可以使用 toStrictEqual 匹配器。例如:

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

上面的代码中,我们创建了两个数组 arr1 和 arr2,它们的元素顺序不同,但是内容相同。使用 toEqual 匹配器可以判断它们相等,但是使用 toStrictEqual 匹配器会判断它们不相等,因为它们的顺序不同。

使用 Matchers 来测试字符串

在测试中,我们经常需要比较两个字符串是否相等。在 Jest 中,我们可以使用 toEqual 匹配器来比较两个字符串是否相等。但是,toEqual 匹配器并不是完全严格的相等比较。比如,它无法检查字符串的大小写是否相等。如果我们想要进行更严格的相等比较,可以使用 toBe 匹配器。例如:

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

上面的代码中,我们创建了两个字符串 str1 和 str2,它们的大小写不同,但是内容相同。使用 toEqual 匹配器可以判断它们相等,但是使用 toBe 匹配器会判断它们不相等,因为它们的大小写不同。

使用 Matchers 来测试数字

在测试中,我们经常需要比较两个数字是否相等。在 Jest 中,我们可以使用 toEqual 匹配器来比较两个数字是否相等。但是,toEqual 匹配器并不是完全严格的相等比较。比如,它无法检查数字的精度是否相等。如果我们想要进行更严格的相等比较,可以使用 toBeCloseTo 匹配器。例如:

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

上面的代码中,我们创建了两个数字 num1 和 num2,它们的精度不同,但是值相等。使用 toEqual 匹配器可以判断它们相等,但是使用 toBeCloseTo 匹配器会判断它们不相等,因为它们的精度不同。

使用 Matchers 来测试函数和异常

在测试中,我们经常需要测试函数的返回值和异常。在 Jest 中,我们可以使用 toBe 匹配器来测试函数的返回值是否符合预期,使用 toThrow 匹配器来测试函数是否抛出了异常。例如:

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

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

上面的代码中,我们定义了一个 add 函数,它接受两个参数并返回它们的和。使用 toBe 匹配器可以测试函数的返回值是否符合预期,使用 toThrow 匹配器可以测试函数是否抛出了异常。

总结

Jasmine Matchers 是一个非常有用的库,它可以让我们更方便地编写测试代码。本文介绍了在 Jest 测试中使用 Jasmine Matchers 的技巧和技巧,涵盖了测试对象、数组、字符串、数字、函数和异常等方面。通过学习本文,我们可以更好地理解 Jest 测试框架和 Jasmine Matchers 库,并编写更高质量的测试代码。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d33889add4f0e0ffb83e34