Javascript 预期[]为[]Jasmine,如何检查空数组

Javascript 预期[]为[]Jasmine,如何检查空数组,javascript,arrays,angular,unit-testing,jasmine,Javascript,Arrays,Angular,Unit Testing,Jasmine,尝试检查空数组时出错。我尝试使用: 案例1:初始化为数组 expect(fixture.componentInstance.dataSource).toBe([]); let expectedAry = new Array; expect(fixture.componentInstance.dataSource).toBe(expectedAry); 案例2:初始化为数组 expect(fixture.componentInstance.dataSource).toBe([]); let

尝试检查空数组时出错。我尝试使用:

案例1:初始化为数组

expect(fixture.componentInstance.dataSource).toBe([]);
let expectedAry = new Array;
expect(fixture.componentInstance.dataSource).toBe(expectedAry);
案例2:初始化为数组

expect(fixture.componentInstance.dataSource).toBe([]);
let expectedAry = new Array;
expect(fixture.componentInstance.dataSource).toBe(expectedAry);
这两种情况都有相同的错误:

Expected [  ] to be [  ].
数组也可以通过它们的长度来检查,下面的方法很好

expect(fixture.componentInstance.dataSource.length).toEqual(0); 

0长度是一个选项,但不确定这是否是检查数组是否为空的正确方法。我们是否有更好的选项来检查数组是否为空?

toBe
不检查数组的内容,它只检查引用是否相同

expect([1])。由于引用不同,toBe([1])
将失败


您应该使用
toEqual
,它有一些智能来检查数组内容,而不仅仅是进行参考比较。

使用
toHaveSize
匹配器:

expect(array).toHaveSize(0);

强烈建议使用它,因为使用它时得到的错误消息要好得多(例如
错误:预期数组大小为0


随着茉莉花3.6的推出:

使用
toEqual
期望值。