Ожидается [], чтобы быть [] Жасмин, как проверить пустой массив

Ошибка при попытке проверить пустой массив. Я пробовал использовать:

Случай 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 является опцией, но не уверен, что это правильный способ проверить, пуст ли массив. У нас есть лучший вариант для проверки того, пуст ли массив?

Ответы

Ответ 1

toBe не проверяет содержимое массива, он только проверяет, совпадают ли ссылки.

expect([1]).toBe([1]) не удастся, потому что ссылки разные.

Вы должны использовать toEqual, у которого есть некоторые смарты для проверки содержимого массива, а не просто для сравнения ссылок.