Pourquoi les éléments suivants échouent-ils?
expect([0,0]).to.equal([0,0]);
et quelle est la bonne façon de tester cela?
Pour attendre , .equal
comparera les objets plutôt que leurs données, et dans votre cas, il s'agit de deux tableaux différents.
Utilisez .eql
pour comparer en profondeur les valeurs. Consultez ce lien .
Ou vous pouvez utiliser .deep.equal
pour simuler la même chose que .eql
.
Ou dans votre cas, vous voudrez peut-être vérifier .members
.
Pour les assertions que vous pouvez utiliser .deepEqual
, liez .
.deepEqual()
( chaijs.com/api/assert ).to.deep.equal(['a','b'])
ne semble pas fonctionner. cependantto.have.all.members(['a','b'])
. si lourd…Essayez d'utiliser Deep Equal. Il comparera les tableaux imbriqués ainsi que Json imbriqué.
Veuillez vous référer au site de documentation principal .
la source
expect([1, 5, 10].sort()).to.deep.equal([1, 10, 5])
Voici comment utiliser chai pour tester en profondeur les tableaux associatifs.
J'ai eu un problème en essayant d'affirmer que deux tableaux associatifs étaient égaux. Je sais que ceux-ci ne devraient pas vraiment être utilisés en javascript mais j'écrivais des tests unitaires autour du code hérité qui renvoie une référence à un tableau associatif. :-)
Je l'ai fait en définissant la variable comme un objet (pas un tableau) avant mon appel de fonction:
la source