2016-06-07 15 views
0

Was ich tun möchte, ist 2 Arrays von Primitiven mit Chai.js vergleichen, aber ohne Berücksichtigung der Reihenfolge der Elemente - wie wenn sie 2 Sätze waren.Chai.js vergleichen Arrays ohne Berücksichtigung der Reihenfolge

Jetzt offensichtlich kann ich so etwas tun:

const actual = ['a', 'b', 'c']; 
const expected = ['b', 'c', 'a']; 
expect(actual).to.have.length(expected.length); 
expected.forEach(e => expect(actual).to.include(e)); 

Aber ich bin neugierig, ob es eine bevorzugte Art und Weise, dies zu tun ‚eingebaut‘ ist (ich es nicht in der Dokumentation finden konnte).

+0

ohne Auftrag es in Arrays heikel ist ... Ihr Code sollte '[ "a", "b", "c", "b"]' und '[ "a", abweichen kann" c ", b", "c"] ' – Redu

Antwort

2

expect([4, 2]).to.have.members([2, 4])

+0

Sehr gut, danke, das ist genau das, was ich gesucht habe. –

1

können Sie die members assertion von chai BDD verwenden.

var mocha = require('mocha'); 
var should = require('chai').should(); 

let a = ['a', 'b', 'c']; 
let b = ['c', 'a', 'b']; 
let c = ['d', 'e', 'c', 'b']; 

describe('test members', function() { 
    it('should pass', function() { 
     a.should.have.members(b); 
    }); 

    it('should fail', function() { 
     a.should.not.have.members(c); 
    }); 
}); 
Verwandte Themen