Est-il un Tableau de l'égalité fonction de match qui ignore la position de l'élément dans jest.js?
Je le conçois .toEqual() vérifie l'égalité de tous les champs de la plaine des objets:
expect(
{"key1":"pink wool","key2":"diorite"}
).toEqual(
{"key2":"diorite","key1":"pink wool"}
);
Donc cela passe.
Mais ce n'est pas vrai pour les tableaux:
expect(["pink wool", "diorite"]).toEqual(["diorite", "pink wool"]);
Il ne semble pas être un comparateur de fonction qui fait cela à la plaisanterie docs, c'est à dire qui teste l'égalité de deux tableaux, indépendamment de leurs éléments positions. Dois-je tester chaque élément dans un tableau à l'encontre de tous les éléments de l'autre et vice versa? Ou est-il un autre moyen?
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de méthode pour comparer des tableaux sans comparaison de l'ordre, mais vous pouvez simplement trier les tableaux à l'aide de
.sort()
avant de faire une comparaison:Vous pouvez vérifier l'exemple dans ce violon.
Mettre les éléments dans un ensemble. Plaisanterie sait comment faire correspondre ces.
["a", "a", "b"]
correspondra["a", "b"]
.utilisation
expect.arrayContaining()
https://jestjs.io/docs/en/expect#expectarraycontainingarraypar exemple,
QUnit a une fonction deepEqual
https://api.qunitjs.com/assert/deepEqual
vous pouvez également utiliser un toBeTruthy matcher et le trait de soulignement
bien que vous n'aurez pas de détails sur les différences entre les objets