Jasmine.js 比较数组

javascriptfront end technologyobject oriented programming

数组可以用 2 种方式进行比较 −

  • 它们引用内存中的同一个数组对象。

  • 它们可能引用不同的对象,但它们的内容都是相等的。

对于情况 1,jasmine 提供了 toBe 方法。这将检查引用。例如,

示例

describe("数组相等", () => {
   it("应该检查数组引用相等性", () => {
      let arr = [1, 2, 3];
      let arr2 = arr
      // 成功运行
      expect(arr).toBe(arr2);
      // 由于引用不相等而失败
      expect(arr).toBe([1, 2, 3]);
   });
});

输出

这将给出输出 −

数组相等性应该检查数组相等性
消息:
   预期 [ 1, 2, 3 ] 为 [ 1, 2, 3 ]。提示:要检查深度相等性,请使用 .toEqual() 而不是 .toBe()。

对于情况 2,我们可以使用 toEqual 方法并深度比较数组。例如,

示例

describe("数组相等性", () => {
   it("应该检查数组引用相等性", () => {
      let arr = [1, 2, 3];
      let arr2 = arr;
      // 成功运行
      expect(arr).toEqual(arr2);
      // 成功运行
      expect(arr).toEqual([1, 2, 3]);
   });
});

输出

这将给出输出 −

1 spec, 0 failures

相关文章