在给定以下代码的情况下,对于导入到测试套件中的数组中包含的值进行断言的一种最佳/最优方法是什么(显然不起作用:)
it('Grant all email phone perms', async() => {
const vals = await doSomeStuff(page, frame);
expect(vals[0]).to.equal('option| 1');
expect(vals[1]).to.equal('option| 2');
expect(vals[2]).to.equal('option| 3');
expect(vals[3]).to.equal('option| 4');
});
在运行时,我可以看到vals
包含以下内容:
vals: Object{val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"}
我确定这是基本知识,但我只是在学习!
谢谢。
答案 0 :(得分:1)
如果您确切知道结果应该是什么样子,则可以使用深等于。
expect(vals).to.deep.equal({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
看起来您的数据是一个对象,而不是数组。但是深层平等同样适用于数组
答案 1 :(得分:0)
或者,我们也可以使用比eql
短的deep.equal
expect(vals).to.eql({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
答案 2 :(得分:0)
我仍在寻找一种进行局部处理的方法(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');