我正在尝试测试两个对象数组是否完全相等,尝试使用 toEqual 匹配器,但似乎它只适用于字符串数组,Jest 中是否有可用的匹配器来满足条件。请不要将此标记为重复,我没有找到明确的答案。
const arr1 = [{name: 'sam', degree: 'engineer', age: '23'}, {name: 'jane', degree: 'accounts', age: '25'}]
const arr2 = [{name: 'jane', degree: 'accounts', age: '25'},{name: 'sam', degree: 'engineer', age: '23'}]
expect(arr1).toEqual(arr2) // should pass the testcase
最佳答案
您可以将其解析为一系列期望。
expect(arr1).toBeArray();
expect(arr2).toBeArray();
expect(arr1).toBeArrayOfSize(arr2.length);
expect(arr2).toBeArrayOfSize(arr1.length);
接下来循环每个数组并检查第二个数组是否包含其元素
arr1.forEach(item => {
expect(arr2).toContain(item);
});
和
arr2.forEach(item => {
expect(arr1).toContain(item);
});
关于javascript - 是否有任何 Jest 匹配器可以比较 Array<Objects>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64617992/