¿Por qué falla lo siguiente?
expect([0,0]).to.equal([0,0]);
¿Y cuál es la forma correcta de probar eso?
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 .
.deepEqual()
( chaijs.com/api/assert ).to.deep.equal(['a','b'])
no parece funcionar Sin embargo loto.have.all.members(['a','b'])
hace. tan engorroso ...Intenta usar Equal profundo. Comparará matrices anidadas y Json anidadas.
Consulte el sitio de documentación principal .
fuente
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:
fuente