CHAI, les correspondants ont équivalent à RSPECS = ~ code> (ce qui signifie que tous les éléments mais que la commande n'a pas d'importance.
EXEMPLE DE PASSE H3>
[1, 2, 3].should =~ [1, 2]
3 Réponses :
Je ne pense pas qu'il y ait, mais vous pouvez en créer un facilement par Construire une assistante :
var chai = require('chai'), expect = chai.expect, assert = chai.assert, Assertion = chai.Assertion Assertion.addMethod('equalAsSets', function (otherArray) { var array = this._obj; expect(array).to.be.an.instanceOf(Array); expect(otherArray).to.be.an.instanceOf(Array); var diff = array.filter(function(i) {return !(otherArray.indexOf(i) > -1);}); this.assert( diff.length === 0, "expected #{this} to be equal to #{exp} (as sets, i.e. no order)", array, otherArray ); }); expect([1,2,3]).to.be.equalAsSets([1,3,2]); expect([1,2,3]).to.be.equalAsSets([3,2]); flag
Notez que le nom de la méthode n'est pas vraiment génial, il est tard et je n'ai rien trouvé de mieux;)
Sachez que ce n'est pas un test d'égalité non ordonné, il est définir i> égalité. Les éléments en double sont autorisés dans l'un ou l'autre tableau; Cela passe, par exemple: attendre ([1,2,3]). to.be.equalassets ([1,3,2,2]); code>
Vous pouvez utiliser MEMBRES CODE> Test disponible dans la dernière version CHAI:
expect([4, 2]).to.have.members([2, 4]);
expect([5, 2]).to.not.have.members([5, 2, 1]);
http://www.rubydoc.info/gems/rspec-expects/ Cadres # Collection_Membership
expect([4, 2]).to match_array([2, 4])