Respuestas:
Para esperar , .equal
comparará objetos en lugar de sus datos, y en su caso son dos matrices diferentes.
Úselo .eql
para comparar profundamente los valores. Mira este enlace .
O podría usar .deep.equal
para simular lo mismo que .eql
.
O, en su caso, es posible que desee verificar .members
.
Para afirmaciones que puede usar .deepEqual
, enlace .
to.deep.equal(['a','b'])
no parece funcionar Sin embargo lo to.have.all.members(['a','b'])
hace. tan engorroso ...
Intenta usar Equal profundo. Comparará matrices anidadas y Json anidadas.
expect({ foo: 'bar' }).to.deep.equal({ foo: 'bar' });
Consulte el sitio de documentación principal .
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
Así es como se usa chai para probar profundamente las matrices asociativas.
Tuve un problema tratando de afirmar que dos asociativos matrices eran iguales. Sé que estos realmente no deberían usarse en JavaScript, pero estaba escribiendo pruebas unitarias alrededor del código heredado que devuelve una referencia a una matriz asociativa. :-)
Lo hice definiendo la variable como un objeto (no matriz) antes de mi llamada a la función:
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');
.deepEqual()
( chaijs.com/api/assert ).