柴testing数组相等不按预期方式工作
为什么以下失败?
expect([0,0]).to.equal([0,0]);
什么是正确的方法来testing?
对于期望 , .equal
将比较对象,而不是他们的数据,在你的情况下,它是两个不同的数组。
使用.eql
来深度比较值。 看看这个链接 。
或者你可以使用.deep.equal
来模拟.eql
。
或者在你的情况下,你可能想检查 .members
。
对于断言你可以使用.deepEqual
, 链接 。
尝试使用深度均等。 它会比较嵌套的数组以及嵌套的Json。
expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });
请参阅主要文档站点 。
这是如何使用柴深入testing关联数组。
我有一个问题试图断言两个关联数组是相等的。 我知道,这些不应该真的在JavaScript中使用,但我正在编写遗留代码的unit testing,它返回一个关联数组的引用。 🙂
我通过在我的函数调用之前将variables定义为一个对象(而不是数组):
var myAssocArray = {}; // not [] var expectedAssocArray = {}; // not [] expectedAssocArray['myKey'] = 'something'; expectedAssocArray['differentKey'] = 'something else'; // legacy function which returns associate array reference myFunction(myAssocArray); assert.deepEqual(myAssocArray, expectedAssocArray,'compare two associative arrays');