Sto scrivendo alcuni test con chai e chai-come-promesso (e più framework, ma non importa in questo caso) e ho bisogno di controllare se array ottengo da una pagina web è uguale a un array predefinito. Ho provato ad usare expect(arrayFromPage).to.eventually.deep.equal(predefinedArray)
, ma non funzionerà, perché l'ordine degli elementi sulla pagina è a volte diverso (che è OK, non ho bisogno di controllare se sono nello stesso ordine).Confronto degli array nel chai
Ho trovato un modo per risolvere il problema utilizzando expect(listFromPage).to.eventually.include.all.members(predefinedArray)
, ma mi piacerebbe sapere se c'è una soluzione migliore.
Ciò che mi infastidisce di più nella mia soluzione, è che assicuro solo che predefinedArray
è sottoinsieme di listFromPage
, non che sono fatti di stessi elementi.
Così, mi piacerebbe sapere se v'è un'asserzione che passerà per [1,2,3]
e [3,2,1]
, ma non per [1]
e [1,2,3]
o [1,2,3,4]
e [1,2,3]
.
So che posso usare qualche seconda aspettativa (confrontare le lunghezze, o qualcos'altro), ma mi piacerebbe sapere se c'è una soluzione a una linea.
Qualche idea sul perché ha funzionato nel mese di agosto '16 se questa richiesta di pull è stata unita nel '13? – Alissa
No. Ma se scavassimo in profondità i commit, allora forse hanno fatto in modo che non funzionasse perché non era mai stato previsto un po 'di tempo tra allora e ora. :-) – sindrenm