objetos matriz elementos array agregar node.js mocha chai

node.js - matriz - chai prueba de igualdad de matrices no funciona como se esperaba



math js download (4)

¿Por qué falla lo siguiente?

expect([0,0]).to.equal([0,0]);

¿Y cuál es la manera correcta de probar eso?


Además, to.eql evitará un error igual de profundo causado por to.eq cuando los datos son exactamente iguales, por ejemplo, la afirmación como esta:

AssertionError: expected { Object (_thing, id) } to equal { Object (_thing, id) }


Esta es la forma de usar chai para probar profundamente matrices asociativas.

Tuve un problema al tratar de afirmar que dos matrices asociativas eran iguales. Sé que no deberían usarse en javascript, pero estaba escribiendo pruebas unitarias en torno a un código heredado que devuelve una referencia a una matriz asociativa. :-)

Lo hice definiendo la variable como un objeto (no una matriz) antes de mi llamada de 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'');


Para esperar , .equal comparará objetos en lugar de sus datos, y en su caso son dos matrices diferentes.

Use .eql para comparar profundamente los valores. Echa un vistazo a este link .
O puedes usar .deep.equal para simular lo mismo que .eql .
O en su caso, puede que desee check .members .

Para las .deepEqual puede utilizar .deepEqual , link .


Trate de usar Deep Equal. Comparará matrices anidadas así como Json anidadas.

expect({ foo: ''bar'' }).to.deep.equal({ foo: ''bar'' });

Por favor, consulte el sitio de documentación principal .