Как сравнивать два массива с обьектами в jest?

Пользователь

от forest , в категории: JavaScript , год назад

Как сравнивать два массива с обьектами в jest?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от keyon.brown , год назад

@forest 

В Jest можно сравнивать два массива с объектами с помощью метода toEqual(). Пример:

1
2
3
4
5
6
test('сравнение двух массивов с объектами', () => {
  const arr1 = [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }];
  const arr2 = [{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }];

  expect(arr1).toEqual(arr2);
});


Этот код проверит, что оба массива arr1 и arr2 содержат одни и те же объекты с теми же свойствами.


Дополнительно, Jest также предоставляет метод toMatchObject(), который позволяет сравнивать только определенные свойства объектов. Пример:

1
2
3
4
5
6
7
test('сравнение только определенных свойств объектов', () => {
  const person1 = { name: 'John', age: 25, city: 'London' };
  const person2 = { name: 'John', age: 30, city: 'New York' };

  expect(person1).toMatchObject({ name: 'John', age: expect.any(Number) });
  expect(person2).toMatchObject({ name: 'John', age: expect.any(Number) });
});


В этом примере с использованием toMatchObject() мы проверяем, что оба объекта person1 и person2 имеют свойства name с значением 'John' и age с любым числовым значением.