使用 Mocha 和 Chai 断言 Javascript 数组中包含的值
Asserting values contained within Javascript Arrays using Mocha and Chai
什么是 good/optimal 断言数组中包含的值的方法,导入到测试套件中,给定以下代码(这显然不起作用:)
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"}
我确定这是基本的东西,但我只是在学习!
谢谢。
如果您确切知道结果应该是什么样子,您可以使用 deep equal。
expect(vals).to.deep.equal({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
而且您的数据看起来是一个对象而不是数组。但深度平等也适用于数组
作为替代,我们也可以使用比deep.equal
更短的eql
expect(vals).to.eql({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
我仍在寻找一种方法来进行部分计算(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');
什么是 good/optimal 断言数组中包含的值的方法,导入到测试套件中,给定以下代码(这显然不起作用:)
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"}
我确定这是基本的东西,但我只是在学习!
谢谢。
如果您确切知道结果应该是什么样子,您可以使用 deep equal。
expect(vals).to.deep.equal({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
而且您的数据看起来是一个对象而不是数组。但深度平等也适用于数组
作为替代,我们也可以使用比deep.equal
eql
expect(vals).to.eql({val1: "option|1", val2: "option|2", val3: "option|3", val4: "option|4"})
我仍在寻找一种方法来进行部分计算(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');