web-dev-qa-db-ja.com

[]が[]であると予想されるジャスミン、空の配列を確認する方法

空の配列を確認しようとしたときにエラーが発生しました。私は使用してみました:

ケース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はオプションですが、配列が空かどうかを確認する正しい方法であるかどうかはわかりません。配列が空かどうかを確認するためのより良いオプションがありますか?

20
Kailas

toBeは配列の内容をチェックせず、参照が同じかどうかのみをチェックします。

参照が異なるため、expect([1]).toBe([1])は失敗します。

toEqualを使用する必要があります。これには、単に参照比較を行うのではなく、配列の内容を確認するスマート機能があります。

49
Evan Trimboli