Jasmine.js 陣列比較


陣列可以透過 2 種方式進行比較 −

  • 它們引用記憶體中相同的陣列物件。

  • 它們可能引用不同的物件,但其內容全部相等。

對於情況 1, jasmine 提供 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]);
   });
});

輸出

將產生以下輸出 −

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

更新於:02-12-2019

925 個瀏覽

開啟您的 職業生涯

完成課程以獲得認證

開始學習
廣告