Computer >> Máy Tính >  >> Lập trình >> Javascript

Jasmine.js so sánh các mảng

Mảng có thể được so sánh theo 2 cách -

  • Chúng tham chiếu đến cùng một đối tượng mảng trong bộ nhớ.

  • Chúng có thể chỉ các đối tượng khác nhau nhưng nội dung của chúng đều bằng nhau.

Đối với trường hợp 1, jasmine cung cấp phương thức toBe. Điều này kiểm tra để tham khảo. Ví dụ:

Ví dụ

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]);
   });
});

Đầu ra

Điều này sẽ cung cấp đầu ra -

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().

Đối với trường hợp 2, chúng ta có thể sử dụng phương thức toEqual và so sánh sâu các mảng. Forexample,

Ví dụ

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]);
   });
});

Đầu ra

Điều này sẽ cung cấp đầu ra -

1 spec, 0 failures