Ожидается [], чтобы быть [] Жасмин, как проверить пустой массив
Ошибка при попытке проверить пустой массив. Я пробовал использовать:
Случай 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
, у которого есть некоторые смарты для проверки содержимого массива, а не просто для сравнения ссылок.