柴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');