Jasmine JavaScript 测试-toBe 与 toEqual


数组可以用 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]);
   });
});

输出

这将输出 -

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

更新时间: 02-12-2019

659 次浏览

开启你的 事业

通过完成课程获得认证

开始
广告