Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การทดสอบ JavaScript ของจัสมิน - toBe vs toEqual


อาร์เรย์สามารถเปรียบเทียบได้ 2 วิธี -

  • พวกเขาอ้างถึงวัตถุอาร์เรย์เดียวกันในหน่วยความจำ

  • พวกเขาอาจอ้างถึงวัตถุที่แตกต่างกัน แต่เนื้อหาทั้งหมดเท่ากัน

ตัวอย่าง

สำหรับกรณีที่ 1 ดอกมะลิมีวิธีการ toBe ใช้สำหรับตรวจสอบข้อมูลอ้างอิง ตัวอย่างเช่น

describe("Array Equality", () => {
   it("should check for array reference equility", () => {
      let arr = [1, 2, 3];
      let arr2 = arr
      // Runs successfully
      expect(arr).toBe(arr2);
      // Fails as references are not equal
      expect(arr).toBe([1, 2, 3]);
   });
});

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

1) Array Equality should check for array equility
Message:
   Expected [ 1, 2, 3 ] to be [ 1, 2, 3 ]. Tip: To check for deep equality, use .toEqual() instead of .toBe().

ตัวอย่าง

สำหรับกรณีที่ 2 เราสามารถใช้วิธี toEqual และเปรียบเทียบอาร์เรย์อย่างละเอียด ตัวอย่าง

describe("Array Equality", () => {
   it("should check for array reference equility", () => {
      let arr = [1, 2, 3];
      let arr2 = arr;
      // Runs successfully
      expect(arr).toEqual(arr2);
      // Runs successfully
      expect(arr).toEqual([1, 2, 3]);
   });
});

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

1 spec, 0 failures