使用Mocha和Chai断言Javascript数组中包含的值

使用Mocha和Chai断言Javascript数组中包含的值,javascript,mocha.js,chai,Javascript,Mocha.js,Chai,在给定以下代码(显然不起作用)的情况下,对导入测试套件的数组中包含的值进行断言的最佳方法是什么 it('Grant all email phone perms',async()=>{ const vals=等待dosomething(第页,第帧); 期望(VAL[0])等于('option | 1'); 期望(VAL[1])等于('option | 2'); 期望(VAL[2])等于('option | 3'); 期望(VAL[3])等于('option | 4'); });如果您确切知道结果

在给定以下代码(显然不起作用)的情况下,对导入测试套件的数组中包含的值进行断言的最佳方法是什么

it('Grant all email phone perms',async()=>{
const vals=等待dosomething(第页,第帧);
期望(VAL[0])等于('option | 1');
期望(VAL[1])等于('option | 2');
期望(VAL[2])等于('option | 3');
期望(VAL[3])等于('option | 4');

});如果您确切知道结果应该是什么样子,可以使用deep equal

expect(vals).to.deep.equal({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})

另外,看起来数据是一个对象而不是数组。但是deep equal也适用于数组

作为替代方案,我们还可以使用比
deep.equal
短的
eql

expect(vals).to.eql({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
参考:

我仍在寻找一种做partials的方法(deepEqual不适合我)。但您的对象是一个对象,而不是数组。对原始代码的最少更改如下

expect(vals.val1).to.equal('option | 1');
expect(vals.val2).to.equal('option | 2');
expect(vals.val3).to.equal('option | 3');
expect(vals.val4).to.equal('option | 4');

旁注:数组在JS中也是一个对象。在控制台
console.log(typeof[])
中键入此项,然后参阅。