检查数组是否是另一个数组的子集,并在末尾使用 js/chai/mocha 断言失败列出所有差异
Check if array is a subset of another array and list all the differences at the end with an assert failure using js/chai/mocha
考虑 expectedData 是 子集数组 我想检查里面 actualData 数组。
我尝试了以下方法,但在第一个错误时失败了。我想在执行结束时列出实际数组和预期数组之间的所有差异,但断言失败。
expectedData.forEach((item) => {
assert.deepInclude(actualData, item, 'actual data did not include item')
})
示例数据:
let expectedData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
]
let actualData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
{
"val": 9.8,
"key": "LMN"
},
]
我不确定为什么我第一次看的时候错过了这个,但是你发布的代码有(很多?)语法错误。试试这个:
let expectedData = [
{
"val": -10.1,
"key": "ABC"
},
{
"val": 10.12,
"key": "DE"
},
{
"val": 9.8,
"key": "LMN"
},
]
let actualData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
{
"val": 9.8,
"key": "LMN"
},
{
"val": 1,
"key": "XYZ"
},
]
expectedData.forEach((item) => {
assert.deepInclude(actualData, item, 'actual data did not include item')
})
找不到任何内置方法。现在,使用 For 循环遍历每个元素以比较并将不匹配项保存到输出数组。
考虑 expectedData 是 子集数组 我想检查里面 actualData 数组。
我尝试了以下方法,但在第一个错误时失败了。我想在执行结束时列出实际数组和预期数组之间的所有差异,但断言失败。
expectedData.forEach((item) => {
assert.deepInclude(actualData, item, 'actual data did not include item')
})
示例数据:
let expectedData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
]
let actualData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
{
"val": 9.8,
"key": "LMN"
},
]
我不确定为什么我第一次看的时候错过了这个,但是你发布的代码有(很多?)语法错误。试试这个:
let expectedData = [
{
"val": -10.1,
"key": "ABC"
},
{
"val": 10.12,
"key": "DE"
},
{
"val": 9.8,
"key": "LMN"
},
]
let actualData = [
{
"val": -10.12,
"key": "ABC"
},
{
"val": 10.12,
"key": "DEF"
},
{
"val": 9.8,
"key": "LMN"
},
{
"val": 1,
"key": "XYZ"
},
]
expectedData.forEach((item) => {
assert.deepInclude(actualData, item, 'actual data did not include item')
})
找不到任何内置方法。现在,使用 For 循环遍历每个元素以比较并将不匹配项保存到输出数组。