我想检查两个数组是否包含相同顺序的相同元素(不是深等于)。
var a = { id: 1 }
var b = { id: 2 }
var c = { id: 3 }
var arr = [a, b, c]
expect(arr).to.______([a, b, c]) // true
expect(arr).to.______([a, c, b]) // false: different order
expect(arr).to.______([a, b]) // false: missing element
expect(arr).to.______([a, b, c, { id: 4 }]) // false: extra element
expect(arr).to.______([a, b, { id: 3 }]) // false: different object reference
我当然可以写
assert.strictEqual(arr.length, expected.length, "length");
for (let q = 0; q < arr.length; ++q) assert.strictEqual(arr[q], expected[q], `[${q}]`);
但是我认为应该已经有一些方法。
Chai有eql
方法,我认为这就是您要寻找的https://www.chaijs.com/api/bdd/#method_eql