gpt4 book ai didi

javascript - 如何匹配两个包含 Jest 中的对象数组的数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:43 25 4
gpt4 key购买 nike

我将数据发送到服务器并将返回的数据与发送的数据进行匹配。如果使用expect.arrayContaining(array)来比较选项和嵌套变体,它会在添加db的id和字段上发誓。如何将对象与包含对象数组的数组进行比较?

Example

要发送的数据:

{
"name": "red dress",
"options": Array [
Object {
"name": "size",
"variants": Array [
Object {
"name": "M",
},
Object {
"name": "L",
},
Object {
"name": "S",
},
],
},
],
}

返回数据:

{
"id": "dc67efd8-dcc4-43df-a8eb-9d95ea641749",
"name": "red dress",
"options": Array [
Object {
"id": 1,
"name": "size",
"productId": "dc67efd8-dcc4-43df-a8eb-9d95ea641749",
"variants": Array [
Object {
"id": 1,
"name": "M",
"optionId": 1,
},
Object {
"id": 5,
"name": "S",
"optionId": 1,
},
Object {
"id": 6,
"name": "L",
"optionId": 1,
},
],
},
],
}

测试:

expect(body.data).toMatchObject(productData)

enter image description here

最佳答案

也许您可以使用 forEach 循环来检查相关数据?根据您发送的数据,我认为重要的是响应中包含提供的选项和变体。

it('has provided options', () => {
sent.options.forEach(o => {
expect(received.options).toContainEqual(
expect.objectContaining({ name: o.name })
)
})
})

对于变体也类似:

it('has provided variants', () => {
sent.options[0].variants.forEach(v => {
expect(received.options[0].variants).toContainEqual(
expect.objectContaining(v)
)
})
})

关于javascript - 如何匹配两个包含 Jest 中的对象数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50180521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com