6
votes

Équivalent à rspec = ~ pour les tableaux de chai

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]


0 commentaires

3 Réponses :


5
votes

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


2 commentaires

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 é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]);



10
votes

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]);


0 commentaires

0
votes

0 commentaires