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

问题描述 投票:13回答:1

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

情况1:通过初始化为数组

expect(fixture.componentInstance.dataSource).toBe([]);

情况2:通过初始化为数组

let expectedAry = new Array;
expect(fixture.componentInstance.dataSource).toBe(expectedAry);

两种情况都有相同的错误:

Expected [  ] to be [  ].

阵列也可以通过它们的长度来检查,以下工作正常

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

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

javascript arrays angular unit-testing jasmine
1个回答
34
投票

toBe是一个明确的参考检查。

expect([1]).toBe([1])将失败,因为引用不同。

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

© www.soinside.com 2019 - 2024. All rights reserved.